代码优先使用Include选择复杂类型()

时间:2017-01-08 12:18:23

标签: entity-framework include code-first

在层次上我有3个表。 1个类表 2学生表 3状态表

课程有学生,学生有状态,你猜。我尝试使用所有学生的学生属性和状态属性选择完全的Classes对象。

我的解决方案不起作用如下。

var query = Context.Classes.Include(x=> x.Student.Statu);
//result : query.Firts().Student.Statu = null
//I am get Statu

我使用Include功能玩了很多,我想我错过了一些观点。 谢谢。

1 个答案:

答案 0 :(得分:2)

您的查询应如下所示:

EF 6.0

  

路径表达式必须由简单的属性访问表达式和Select调用组成,以便在包含集合属性后组成其他包含。示例:msdn

 Context.Classes.Include(x=> x.Student.Select(y => y.Status));

EF Core

  

您可以使用ThenInclude方法深入了解关系以包含多个级别的相关数据。以下示例加载所有博客,其相关帖子以及每篇帖子的作者。   docs

Context.Classes.Include(x=> x.Student).ThenInclude(x => x.Status);