Linq - Левое внешнее соединение с точечной нотацией

Как мне выполнить левое внешнее соединение в linq, используя точечную нотацию?

Здесь ' s выражение запроса:

var query = from u in db.Users
            join d in db.Defects on u.userID equals d.userID into defectsGroup
            from d in defectsGroup.DefaultIfEmpty()
            select new { u, d };

Вот что я пробовал:

var query2 = db.Users.GroupJoin(db.Defects.DefaultIfEmpty(), 
                u => u.userID, 
                d => d.userID, 
                (user, defect) => new { user, defect });

Но дефект отображается как IEnumerable , а не просто Defect . Я также пробовал:

var query2 = db.Users.GroupJoin(db.Defects, 
                u => u.userID, 
                d => d.userID, 
                (user, defect) => new { user, defect.DefaultIfEmpty() });

Что просто не компилируется. Во всех онлайн-примерах используется (более ясный) синтаксис запросов.

17
задан Adam Rackis 30 March 2011 в 16:09
поделиться