EF - Linq to Entity и навигационное свойство - PullRequest
0 голосов
/ 07 февраля 2011

Мне нужно создать простой запрос LINQ to Entity с использованием EF. Я довольно новичок в этом, и я застрял больше 1 дня.

Из моей таблицы базы данных:

CmsJobs
CmsJobsContents (Pure Junctional Table)
CmsContents  

Мне нужно перечислить серию CmsContents с определенным CmsJobs.JobId

Есть идеи, как это сделать? Спасибо за вашу помощь

Моя модель EF:

enter image description here

Ответы [ 2 ]

2 голосов
/ 07 февраля 2011
CmsJob job = (from j in dataContext.CmsJobs where j.JobId == jobIdIAmLookingFor select j).FirstOrDefault();   
IEnumerable<CmsContent> theContentItems = job.CmsContents;
1 голос
/ 07 февраля 2011

Или более читабельно и быстрее (Недавно я провел много тестов для запроса модели тем или иным образом (из перспективы CmsJobs или из перспективы CmsContents):

    using(EntityModel context = new EntityModel())
    {
      List<CmsContents> list = context.CmsContents
                               .Include("CmsJobs")
                               .Where<CmsContents>(cc => cc.CmsJobs.Where<CmsJobs>(cj => cj.JobId == requiredId))
                               .ToList<CmsContents>()
    }

Не проверял это, но я должен работать. Попробуйте сами. Это менее логичный способ запроса перспективы, но он дает вам в точности то, что вам нужно (список сущностей CmsContents) без содержащей сущность CmsJobs (как предполагается Rune).

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