В linq-to-entity как вернуть объекты с отфильтрованным списком детей? - PullRequest
1 голос
/ 12 мая 2010

У меня есть следующая модель

EDMX model representing a ProductionBlock with 0 or many ProductionLog

Первый шаг - выбрать все ProductionBlock с помощью

.
var blocks = context.ProductionBlocks;

Как я могу объединить ProductionLog, который не имеет времени окончания, с ProductionBlock?

Я пытался сделать это с помощью обратного поиска, как

var blocks = context
    .ProductionLogs
    .Include("FK_ProductionLog_ProductionBlock")
    .Where(log => log.EndTime == null).Select(log => log.ProductionBlock)
    .Union(context.ProductionBlocks);

Но блоки не содержат ProductionLogs. Как мне этого добиться?

1 Ответ

2 голосов
/ 12 мая 2010

Дайте мне знать, если я с базы, но вы бы хотели.

 var logs = (
       from pl in context.ProductionLogs.Include("ProductionBlock")
            where pl.EndTime == null
       select pl);

У вас будет список журналов и блоков.

var blocks  = logs.SelectMany(x=>x.ProductionBlock)
...