如果我在关键字段上查询具有条件的表,如下所示:
var user = from u in dc.Users where u.UserName == usn select u;
我知道我会得到零结果或一个结果.我是否仍然可以继续使用for-each检索结果,或者是否有其他首选方法来处理这种情况.
尝试这样的事情:
var user = (from u in dc.Users where u.UserName == usn select u).FirstOrDefault();
该FirstOrDefault方法返回,如果没有这样的元素被发现,满足指定条件或默认值的序列的第一个元素.
为什么不喜欢
var user = dc.Users.SingleOrDefault(u=> u.UserName==usn);
还应注意,First/FirstOrDefault/Single/SingleOrDefault是LINQ to Sql命令的执行点.由于LINQ语句之前没有执行过,它能够影响生成的SQL(例如,它可以在sql命令中添加TOP 1)