Как написать LINQ для сущностей для объединения пустых таблиц
Привет,
У меня есть два стола :
Category(categ) Sub Category (scat)
Я хочу выполнить следующий запрос к приведенным выше таблицам.
select a.code, a.name, a.type, b.category as category from categ a left join scat b on a.code=b.code
Вышеприведенный sql при выполнении на SQL Server это и есть результат.
code name type category 1001 abc F NULL 1002 def F NULL 1003 ghi B NULL
Я попробовал этот LINQ для приведенного выше запроса :
Обратите внимание : контекстная таблица scats-это пустая таблица.
List<categscat> lstcateg = (from categrow in Context.categs.AsEnumerable() join scatrow in Context.scats on categrow.code equals scatrow.code select new categscat(categrow.code, categrow.name, categrow.type, categrow.cate, joinedrow.category)).ToList();
Это возвращает исключение NullReferenceException.
Что я уже пробовал:
попробовал использовать DefaultIfEmpty() в соответствии с предложениями по ссылке ниже :
https://www.codeproject.com/articles/169590/linq-to-sql-left-join-with-null-values
lstcateg = (from categrow in dlsmain.odlsContext.categs.AsEnumerable() join scatrow in dlsmain.odlsContext.scats.AsEnumerable() on categrow.code equals scatrow.code into jointable from joinedrow in jointable.DefaultIfEmpty() select new categscat(categrow.code, categrow.name, categrow.type, categrow.cate, joinedrow.category)).ToList();
И все же я получаю ту же ошибку. В чем же моя ошибка? Как сделать это правильно ? Пожалуйста, предложите.