我对 LINQ 和实体框架以及 C# 中的 var 关键字都很陌生,所以如果这听起来像一个“新手”问题,请原谅我。
在执行以下操作后,我在检查空值时遇到问题:
var entry = myDB.Entries.Where(e => e.Email == entry.Email);
即使数据库中不存在该电子邮件,条目也不等于空。
所以而不是if (entry == null)
我必须做if (entry.Count() < 1)
在执行下一批语句之前检查现有条目。是否有任何原因导致该变量不被视为空?
在你的例子中,entry
will never be null
。你认为什么是null
实际上是一个IEnumerable<Entry>
没有任何物品。
如果您想检查是否至少有一个条目符合您的条件,您通常会执行以下操作:
var entries = myDB.Entries.Where(e => e.Email == entry.Email);
if (entries.Any()) {
// ...
}
如果你知道会有at most一项,那么您还可以执行以下操作:
var entry = myDB.Entries.Where(e => e.Email == entry.Email).SingleOrDefault();
if (entry != null) {
// ...
}
这更接近您的想象,但如果有多个匹配条目,则会抛出异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)