gpt4 book ai didi

.net - EF LINQ 包括多个嵌套实体

转载 作者:行者123 更新时间:2023-12-03 04:22:52 24 4
gpt4 key购买 nike

好的,我有具有以下层次结构的三级实体:类(class) -> 模块 -> 章节

以下是原始 EF LINQ 语句:

Course course = db.Courses
.Include(i => i.Modules.Select(s => s.Chapters))
.Single(x => x.Id == id);

现在,我想添加另一个名为 Lab 的实体,该实体与类(class)关联。

如何包含实验室实体?

我尝试了以下方法,但没有成功:

Course course = db.Courses
.Include(i => i.Modules.Select(s => s.Chapters) && i.Lab)
.Single(x => x.Id == id);

关于包含第二个实体有什么想法吗?

任何建议或信息将不胜感激。谢谢!

最佳答案

您是否尝试过添加另一个包含:

Course course = db.Courses
.Include(i => i.Modules.Select(s => s.Chapters))
.Include(i => i.Lab)
.Single(x => x.Id == id);

您的解决方案失败,因为 Include 不采用 bool 运算符

Include(i => i.Modules.Select(s => s.Chapters) &&          i.Lab)
^^^ ^ ^
list bool operator other list

更新要了解更多信息,请下载LinqPad并查看样本。我认为这是熟悉 Linq 和 Lambda 的最快方法。

首先 - SelectInclude 之间的区别在于,通过 Select,您可以决定内容你想要返回(又名投影)。 Include 是一个预加载函数,它告诉 Entity Framework 您希望它包含来自其他表的数据。

包含语法也可以是字符串。像这样:

           db.Courses
.Include("Module.Chapter")
.Include("Lab")
.Single(x => x.Id == id);

但是LinqPad中的样本更好地解释了这一点。

关于.net - EF LINQ 包括多个嵌套实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15764572/

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