Запросите таблицу, используя свойства навигации по внешнему ключу в LINQ с C # - PullRequest
0 голосов
/ 20 июля 2011

У меня есть следующие LINQ to SQL EF классы:

LINQtoSQL EF class diagram

с отношением внешнего ключа на SessionId (первичная таблица WebinarSession ).

Я бы хотел, , используя лямбды , чтобы выбрать все строки WebinarSession , которые относятся к определенной линейке продуктов.

Я привел в качестве примера этот код, который, конечно, НЕ РАБОТАЕТ (он будет работать с Single inseatd Где , но он не применим, потому что у меня есть несколько экземпляров, соответствующих условию):

SessionId = _webinarRecordingsDB.WebinarSessions.Where(m => m.SessionId == m.SessionSubjects.Where(n => n.ProductLineName == productLine).SessionId);

Где _webinarRecordingsDB - это объект EF, отображающий базу данных SQL .

Кто-нибудь знает, как выполнить эту задачу? Спасибо

1 Ответ

6 голосов
/ 20 июля 2011

Это должно сработать:

var sessions = _webinarRecordingsDB.WebinarSessions.Where(w => w.SessionSubjects.Any(s => s.ProductLine == productLine));

Когда вы определяете внешний ключ в EF (или классах Linq to SQL), дизайнер должен автоматически создать свойство, которое позволит вам получить прямой доступ к таблице изваша сущность (в вашем случае ваш объект WebinarSession должен иметь свойство с именем SessionSubjects).

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