2010-05-12 55 views
1

我有以下型号在linq-to-entities中,如何使用筛选的子列表返回对象?

EDMX model representing a ProductionBlock with 0 or many ProductionLog

的第一步是选择所有ProductionBlock

var blocks = context.ProductionBlocks; 

我如何可以结合一个没有结束的时间与ProductionBlockProductionLog

我试图做它用反向查找类似

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

但块不包含任何ProductionLogs。我怎样才能做到这一点?

回答

2

让我知道如果我脱离基地,但你会想。

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

然后,您将有一个日志和块的列表。

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

谢谢,我能够从你的建议,建立并制定出一个解决方案'VAR块= context.ProductionLogs.Include( “ProductionBlock”)。其中(日志=> log.EndTime == NULL)。 ToList()。选择(日志=> log.ProductionBlock).Union(context.ProductionBlocks); ToList()这是因为我有一个Xml列和联合不与一个Xml列一起工作。 – 2010-05-12 20:09:37