объединение нескольких таблиц Linq - PullRequest
1 голос
/ 04 января 2012

У меня есть 3 таблицы с именами Player, PlayerDetails и Team.Я хочу написать оператор linq, например

from p in Player join d in PlayerDetails on p.ID equals d.PID

, а затем объединить правую командную таблицу. У игрока есть столбец с именем TID, который обращен к идентификатору таблицы команды.утверждение типа

from p in Player join d in PlayerDetails on p.ID equals d.PID into PlayerGroup
from t in team join g in PlayerGroup on t.ID equals g.p.ID

Это, конечно, не может работать.Я не уверен, как написать такой тип запроса: таблица присоединяется слева table2, затем right table table3.

Кто может помочь?

1 Ответ

1 голос
/ 04 января 2012

Я полагаю, что вы могли бы сделать что-то вроде этого:

var LeftJoin =
    from p in Player
    join d in PlayerDetails on p.ID equals d.PID into pd
    from d in pd.DefaultIfEmpty()
    select new
    {
        pID = p.ID,
        pTID = p.TID,
        dID = d.ID
    };

var RightJoin =
    from t in Team
    join l in LeftJoin on t.ID equals l.pTID into tl
    from l in tl.DefaultIfEmpty()
    select new
    {
        tID = t.ID,
        pID = l.pID,
        pTID = l.PTID,
        dID = l.dID
    };

Чтобы сделать все в одном запросе, я думаю, вы могли бы сделать (не проверено) что-то вроде этого:

...