В чем разница между этими двумя запросами?LINQ to SQL Присоединение Query возвращает 1 вместо 0
Я получаю 0 из кодов1.Count(), но 1 из кодов2.Count(), но это должно быть 0 для обоих.
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 возвращает значение по умолчанию (TSource), если источник пуст; в противном случае первый элемент в источнике (от MSDN - http://msdn.microsoft.com/en-us/library/bb340482.aspx). – adatapost
, но почему я должен получать 1 вместо 0? –
также ваш первый запрос сложнее, нет необходимости в where where 'user.UsrUserName.Equals (code.UsrUserName)', как это подразумевается 'от кода в user.SecurityCodes' также == следует использовать вместо .Equals –