我目前在两个地方使用一个查询来从数据库中获取一行。BlogPost post = (from p in dc.BlogPosts where p.BlogPostID == ID select p).Single();在检索将数据放入文本框中的行时,该查询很好,但是当用于检索该行以对其进行编辑并将其放回数据库时,它将返回错误“序列不包含任何元素”。我不明白为什么它可能在一个实例中找到一个合适的行,而在另一个实例中找不到。(使用ASP.NET MVC和LINQ)
3 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
从“ 修复LINQ错误:序列不包含任何元素 ”中:
当您收到LINQ错误“序列不包含任何元素”时,通常是因为使用的是
First()
orSingle()
命令,而不是FirstOrDefault()
andSingleOrDefault()
。
这也可能由以下命令引起:
FirstAsync()
SingleAsync()
Last()
LastAsync()
Max()
Min()
Average()
Aggregate()
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);
- 3 回答
- 0 关注
- 478 浏览
添加回答
举报
0/150
提交
取消