我是 Linq 和 C# 的新手,我花了很长时间试图解决这个非常简单的问题。
我有以下代码:
var currcard = from c in db.CreditCards where c.Id == cid select c;
其中 db 是数据库上下文,而 credit cards 是该数据库中的表。
这可能会导致返回多条记录,然后我使用 foreach 对其进行迭代。当有记录要返回时,一切都很好。
但是,有时不会返回任何记录,并且我收到“序列不包含元素”错误。我不想使用 FirstOrDefault 或 SingleOrDefault,因为如果返回所有记录,我想要它们。但是,如果没有返回记录,我终生无法弄清楚当我需要 null 时我会使用什么等价于这些函数。
如果解决方案不简单,我不会感到惊讶。有时 c# 似乎过于复杂。
编辑:最后我发现错误是由上下文中的 SaveChanges 方法引发的,而不是分配语句或迭代块。使用 Any 关键字最终使我发现了我的问题,因此即使结果证明这是一个单独的问题,我也将该答案标记为正确。但是感谢大家的帮助。