Как вернуть отдельные строки из Entity и связанных сущностей - PullRequest
1 голос
/ 08 июля 2011

У меня есть сущность, которая имеет связь с другими сущностями (связанными сущностями). Я пытаюсь вернуть отдельные строки из первичной сущности, которая должна включать данные из связанной сущности, чтобы я мог использовать один из свойств связанной сущности вниз по течению.

Ниже приводится оператор, который я использую, но он не возвращает никаких строк. Какой лучший способ сделать это?

Ниже мой код.

return context.UserDisplays.Include("CurrentJob").Where(d => d.UserName == userName).GroupBy(d => d.CurrentJob.JobNo).Select(g => g.FirstOrDefault()).ToList();

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 08 июля 2011

Ознакомьтесь с разделом «Отдельные операторы» в этой статье. http://msdn.microsoft.com/en-us/vcsharp/aa336746 Вы запрашиваете «Отдельные пользовательские дисплеи»?или Отличный пользователь или Disticnt Jobs?

Я бы попробовал сказать что-то вроде

var object = (from userDisplay in context.UserDisplays.Include("CurrentJob")
.Where userDisplay.UserName == userName
Select userDisplay).Distinct();

(извините, я ухожу из своего стиля VB, но это должно быть примерно так же)

1 голос
/ 08 июля 2011

Редактировать - для ComplexProperty

Я полагаю, что как только вы выполните GroupBy, все Include методы будут проигнорированы. Поэтому вам нужно будет перебрать список и вызвать метод LoadProperty для каждого элемента. Это должно выглядеть примерно так

var list = context.UserDisplays
                  .Where(d => d.UserName == userName)
                  .GroupBy(d => d.CurrentJob.JobNo)
                  .Select(g => g.FirstOrDefault()).ToList();

foreach(var item in list)
{
   context.LoadProperty(item, "CurrentJob");
}

return list;

Ссылка на ресурс

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