【发布时间】:2021-02-19 16:43:44
【问题描述】:
我目前在两个地方使用单个查询从数据库中获取一行。
BlogPost post = (from p in dc.BlogPosts
where p.BlogPostID == ID
select p).Single();
在检索行以将数据放入文本框中时查询很好,但在用于检索行以对其进行编辑并将其放回数据库时返回错误“序列不包含元素” .我不明白为什么它可能会在一个实例中找到合适的行,而在另一个实例中却找不到。
(使用 ASP.NET MVC 和 LINQ)
【问题讨论】:
-
你必须使用 SingleOrDefault ,如果没有返回任何项目,它将返回 null
-
错误是在 dc.BlogPosts 中找不到任何与 ID 值匹配的项目。要么 ID 没有值,要么列表中的项目包含该项目。使用 SingleOrDefault 或 FirstOrDefault,如果没有找到项目而不是错误,这些将返回一个空对象。