gpt4 book ai didi

c# - 从 Entity Framework .NET 返回父子的多个孙子

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

我正在使用 VS2017 创建一个 ASP.NET Web 应用程序(不使用 CORE),.NET Framework 是 4.6.2,Entity Framework .NET 是 6.1.3。我在这里寻找我的答案,但我没有尝试过或提到过的所有内容。

我现在有以下代码来获取特定 parent 的 child 的孙子,我知道必须有一种更有效的方法来获取这些孙子,但不知道如何:

            using (_ge = new generation_entities())
{
if (_id != null)
{
List<scheduleheader> _tlist = (from a in _ge.scheduleheaders.Include("scheduledetails") where a.programID == _id select a).ToList();
foreach (scheduleheader _t in _tlist)
{
foreach (scheduledetail _s in _t.scheduledetails)
{
_s.scheddtlcustoms = (from a in _ge.scheddtlcustoms where a.dtlID == _s.dtlID select a).ToList();
_s.scheddtlstandards = (from a in _ge.scheddtlstandards where a.dtlID == _s.dtlID select a).ToList();
_s.scheddtltalks = (from a in _ge.scheddtltalks where a.dtlID == _s.dtlID select a).ToList();
_s.scheddtlvenues = (from a in _ge.scheddtlvenues where a.dtlID == _s.dtlID select a).ToList();
_s.scheduledtlrecurrences = (from a in _ge.scheduledtlrecurrences where a.dtlID == _s.dtlID select a).ToList();
}
}
return _tlist;
}
else
return (from a in _ge.scheduleheaders where a.scheduledetails.Any(b => b.start > DateTime.Today.AddDays(-30)) && a.programID == null select a).ToList();
}

我已经尝试使用 .ThenIncludeInclude("xxxx.xxxx.xxxx") 但是,.ThenInclude 甚至不可用我和 Include("xxxx.xxxx.xxxx") 只适用于一个孙子。 Include() 只允许我输入字符串路径,但我看到评论说 OP 使用的是旧版本的 EF。

我卡在这上面了,如果我在这里遗漏了什么,我能得到启发吗?

最佳答案

你可以尝试这样的事情:

            var query = context
.Parents
.Include(p=>p.children)
.Include(p=>p.children.Select(x=>x.Grandchild1))
.Include(p=>p.children.Select(x=>x.Grandchild2))
.ToList();

您可以使用 linq 访问它,您可能有一个 id,您可以在其中执行以下操作:

var grandchild6 = query
.children
.FirstOrDefault(child=>child.Id =1)
?.GranChildern
?.FirstOrDefault(grandChild=>grandchild.Id = 6);

关于c# - 从 Entity Framework .NET 返回父子的多个孙子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46856286/

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