为了账号安全,请及时绑定邮箱和手机立即绑定

序列中没有元素?

序列中没有元素?

C#
万千封印 2019-12-25 15:32:42
我目前在两个地方使用一个查询来从数据库中获取一行。BlogPost post = (from p in dc.BlogPosts                 where p.BlogPostID == ID                 select p).Single();在检索将数据放入文本框中的行时,该查询很好,但是当用于检索该行以对其进行编辑并将其放回数据库时,它将返回错误“序列不包含任何元素”。我不明白为什么它可能在一个实例中找到一个合适的行,而在另一个实例中找不到。(使用ASP.NET MVC和LINQ)
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

在这两种情况下,都在该行上放置一个断点,或在其之前放置一个Debug.Print,然后查看包含的ID。


查看完整回答
反对 回复 2019-12-25
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

从“ 修复LINQ错误:序列不包含任何元素 ”中:

当您收到LINQ错误“序列不包含任何元素”时,通常是因为使用的是First()or Single()命令,而不是FirstOrDefault()and SingleOrDefault()

这也可能由以下命令引起:

  • FirstAsync()

  • SingleAsync()

  • Last()

  • LastAsync()

  • Max()

  • Min()

  • Average()

  • Aggregate()


查看完整回答
反对 回复 2019-12-25
?
POPMUISE

TA贡献1765条经验 获得超5个赞

好吧,这是ID什么?特别是它是局部变量吗?存在一些范围/捕获问题,这意味着可能只需要针对查询使用第二个变量副本:


var id = ID;

BlogPost post = (from p in dc.BlogPosts

                 where p.BlogPostID == id

                 select p).Single();

也; 如果这是LINQ-to-SQL,则在当前版本中,如果使用以下格式,则行为会稍微好一些:


var id = ID;

BlogPost post = dc.BlogPosts.Single(p => p.BlogPostID == id);


查看完整回答
反对 回复 2019-12-25
  • 3 回答
  • 0 关注
  • 450 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信