Я хочу написать один запрос LINQ
с левым внешним соединением. Для этого я могу написать соответствующий запрос SQL
, который возвращает желаемый результат, но то же самое в linq не работает для меня.Использование Left Outer Присоединиться к Linq
Это то, что мой SQL выглядит следующим образом:
SELECT Table1.ID, Table1.Description
FROM Table1 LEFT OUTER JOIN
Table2 ON Table1.AID = Table2.AID AND Table1.TID = Table2.TID
WHERE (Table2.Status <> 'Using') OR (Table.Status IS NULL)
Этот запрос возвращает 7 записей для меня и это то, что мое требование is.Now тот же запрос, я хочу писать с помощью LINQ и это то, что я пытался с :
return (from t1 in db.Table1.AsEnumerable()
join t2 in db.Table2.AsEnumerable() on t1.AID equals t2.AID into outer
from item in outer.DefaultIfEmpty()
where item.TID == t1.TID
&& string.IsNullOrEmpty(item.Status) || item.Status != "Using"
select t1
);
Но я столкнулся с проблемами с this.Here, он не в состоянии найти пункт и, таким образом, возвращая
'Object reference not set to an instance of an object.'
Что я делаю неправильно здесь ????
Я старался постоянно, но не имел решений. Таким образом, любая помощь в этом была бы высоко оценена. Спасибо заранее.
[Что такое NullReferenceException и как это исправить?] (Http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) –
Почему у вас есть этот 'AsEnumerable()'? Вы должны убрать его. (дважды) –