C# 选择/筛选L2E中的嵌套集合

C# 选择/筛选L2E中的嵌套集合,c#,linq,lambda,linq-to-entities,C#,Linq,Lambda,Linq To Entities,考虑3个实体组,框和消息。每个组包含框,每个框包含消息 使用lambda表达式在Linq to Entitis中使用自定义条件检索组内消息的最简洁的方法是什么 例如,我想选择某个组中昨天提交的邮件(因此,结果应该是IEnumerable)。如何在db查询中对db进行最少的调用并过滤掉结果 更新 因为没有显示我的代码而被否决。那是因为我没有。这个问题很简单。不是家庭作业。没想到 因此,假设您的数据库中有外键,并且模型中有导航属性,下面的代码应该可以做到这一点: var messages = con

考虑3个实体<代码>组,
消息
。每个组包含框,每个框包含消息

使用lambda表达式在Linq to Entitis中使用自定义条件检索组内消息的最简洁的方法是什么

例如,我想选择某个组中昨天提交的邮件(因此,结果应该是
IEnumerable
)。如何在db查询中对db进行最少的调用并过滤掉结果

更新

因为没有显示我的代码而被否决。那是因为我没有。这个问题很简单。不是家庭作业。没想到

因此,假设您的数据库中有外键,并且模型中有导航属性,下面的代码应该可以做到这一点:

var messages = context.Groups
                      .SelectMany(g => g.Boxes
                                        .SelectMany(b => b.Messages
                                                          .Where(m => m.Date ==
                                                                      yourDate)
                                                   )
                                 );

您只需要在它们之间放置联接查询

from g in group 
join b in boxes on g.id = b.groupid
join m in messages on b.id = m.boxid
where m.Date = your date
select m

虽然我说过我很想看到它使用lambda表达式,但谢谢你的解决方案。@Kamyar-如果你想这样做,那就试试Daniel解决方案吧,因为selectmany可以让你更强大