Linq - EF: Как запросить таблицу соединений? - PullRequest
1 голос
/ 12 июля 2011

Я использую c #, linq и EF4.

В моей базе данных есть две таблицы, представленные в моей концептуальной модели:

Таблицы базы данных:

CmsContents
CmsRelatedContents (Junction table)

Тип объекта:

CmsContent

У меня есть некоторые навигационные свойства:

for CmsContent --> CmsContents --> Return Collection of CmsContent --> from role: CmsContent1 to CmsContent (map ToContentId)
for CmsContent --> CmsContents1 --> Return Collection of CmsContent --> from role: CmsContent to CmsContent1 (map FromContentId)

Представлены данные в базе данных для соединительной таблицы (CmsRelatedContents):

FromContentId   ToContentId
4               3
5               2

В таблице CmsContents:

ContentId
2
3
4
5

Мне нужно использовать Linq или EF для получения Objects in CmsContent, связанного в столбце ToContentId, фильтрующего таблицу соединений для определенного FromContentId

У вас есть идея, как это сделать?

Пожалуйста, предоставьте мне пример кода. Спасибо за вашу помощь в этом!


РЕДАКТИРОВАТЬ: РЕШЕНИЕ

// Option A:
           var test = from cnt in context.CmsContents
                       where cnt.CmsContents.Any(t => t.ContentId == contentId)
                       select cnt;

// Option B: 
       var toContents = context.CmsContents.Where(r => r.CmsContents.Any(t => t.ContentId == contentId));

Спасибо, ребята, за вашу поддержку!

1 Ответ

2 голосов
/ 12 июля 2011

Не уверен, правильно ли я вас понял, но это может быть то, что вам нужно:

dbContext.CmsContent.Where(r => r.CmsContents.Any(t => t.Id = someId))

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