C# 选择/筛选L2E中的嵌套集合
考虑3个实体<代码>组,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
框
和消息
。每个组包含框,每个框包含消息
使用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可以让你更强大