LINQ to SQL连接查询返回1而不是0 [英] LINQ to SQL Joining Query returning 1 instead of 0
本文介绍了LINQ to SQL连接查询返回1而不是0的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这两个查询有什么区别?
Whats the difference between these two query?
我从code1.Count()得到0,但从code2.Count()得到1,但是两者都应该为0.
I am getting 0 from codes1.Count() but 1 from codes2.Count() but it should be 0 for both.
IQueryable<SecurityCode> codes1 = (from user in dataBase.SecurityUsers
from code in user.SecurityCodes
where user.UsrUserName.Equals(code.UsrUserName)
&& user.UsrPhone.Equals(phone)
select code);
IQueryable<SecurityCode> codes2 = (from user in dataBase.SecurityUsers
where user.UsrPhone.Equals(phone)
select user.SecurityCodes.FirstOrDefault());
关系显示在下方
任何解释将不胜感激.
推荐答案
FirstOrDefault将始终仅返回1个元素,无论该元素是否存在.因此您的第二个查询将始终返回元素. (每个用户一个)
FirstOrDefault will always return exactly 1 element, regardless of if it exists. so your second query will always return elements. (one for each user)
这篇关于LINQ to SQL连接查询返回1而不是0的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文