gpt4 book ai didi

c# - 多个 child 的 Entity Framework linq 查询

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:25 25 4
gpt4 key购买 nike

我在下面有这个查询,但我不确定如何编写查询,这样我就不必遍历每个 yogaSpace 并运行单独的查询。

我想在一个查询中同时运行它。仅供引用 - yogaprofile 与 yogaspaces 一对多。 yogaspaces 与 yogaspaceevents 有一对多关系。我想要来自单个 Yaga 配置文件的所有 Yaga 空间的所有 Yaga 空间事件。

using (var dbContext = new YogabandyContext())
{
var yogaProfile = dbContext.YogaProfiles.Where(i => i.ApplicationUserGuid == userId).First();
var yogaSpaces = yogaProfile.YogaSpaces;
var today = DateTime.Now.Date;
foreach (var yogaSpace in yogaSpaces)
{
var yogaEvents = yogaSpace.YogaSpaceEvents.Where(k => k.EventDateTime.Date > today.AddDays(-30) && k.EventDateTime < today.AddDays(30));
// do something with the yogaEvents here
}
}

最佳答案

YogaSpaces DbSet 开始查询。通过这种方式,您可以获得在服务器端执行的一个查询所期望的结果:

//Do this outside of your query, a method call can't be translated to sql
var up= DateTime.Now.Date.AddDays(30);
var down= DateTime.Now.Date.AddDays(-30);

var query= dbContext.YogaSpaces
.Where(i => i.YogaProfile.ApplicationUserGuid == userId)
.SelectMany(i=>i.YogaSpaceEvents.Where(k => k.EventDateTime.Date > down && k.EventDateTime < up));

关于c# - 多个 child 的 Entity Framework linq 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42212028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com