Как использовать JOIN в запросе LINQ - PullRequest
1 голос
/ 24 февраля 2010

У меня есть следующая структура таблицы, которая импортируется в проект Entity Framework: ( ПРИМЕЧАНИЕ : я ошибочно обозначил T1Name как T2Name в Таблице1)

альтернативный текст http://digitalsamurai.us/images/drawing2.png

Я пометил объекты сущности. Объединенная таблица «многие ко многим» Table5 представлена ​​как EntityCollection в Entity3 и как EntityCollection в Entity4 (EntityCollection реализует IEnumerable , поэтому его можно запрашивать). Мне нужно построить набор результатов, который:

T1Name, T2Name, T3Name

Это приведет к повторным записям для T1Name и T2Name.

Может кто-нибудь показать мне, как написать этот запрос LINQ?

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 24 февраля 2010
var q = from e3 in Context.Table3
        from e4 in e3.Table4s     // that's your many-to-many
        select new
        {
            Name3 = e3.T3Name,
            Name2 = e4.Table2.T2Name,
            Name1 = e4.Table1.T1Name // presuming Table1.T2Name in your diagram is a typo
        };

«Точечная запись»:

var q = Context.Table3
               .SelectMany(e3 => e3.Select(e4 => 
                                               new {
                                                   Name3 = e3.T3Name,
                                                   Name2 = e4.Table2.T2Name,
                                                   Name1 = e4.Table1.T1Name
                                               });

Обратите внимание, я не использовал join вообще. Это специально; она тебе не нужна е.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...