Оставленное внешнее соединение в модели данных сущности asp.net - PullRequest
1 голос
/ 07 мая 2011

как реализовать левое внешнее соединение в Linq для структуры сущностей. Функция DefaultIfEmpty не поддерживается. пожалуйста, приведите пример.

Ответы [ 2 ]

4 голосов
/ 13 сентября 2011

Это работает в .NET 3.5.Когда вы присоединяетесь без выполнения операции «from» в сочетании с функцией FirstorDefault, она выдаст вам строку, которую вы ищете в левой объединенной таблице.Если вам нужно несколько строк, просто используйте where (). Надеюсь, это поможет.

====

comments = from p in _db.Master

join t in _db.Details on p.DetailID equals t.DetailID into tg

select new 
{

 A = p.Column1,

//this next column is the one from the left joined table

 B = tg.FirstOrDefault(t => t.DetailID == p.DetailID).Column2

};
3 голосов
/ 07 мая 2011

Платформа сущностей в .NET 3.5 не предлагает левого соединения в запросах Linq.Способ получения "объединенных записей" - через свойство навигации между сущностями.Что-то вроде:

var query = from u in context.Users
            select new 
               {
                   User = u,
                   Orders = u.Orders.Where(...) // Filtered left join but User and Order must be related
               };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...