C# .NET Linq:如何在实体中加载所有内容
我有一个StudentDm链接到数据库中的一个Student表。该学生有20个导航属性(例如StudentEnrollments)和子导航属性。我需要加载一部分学生,但它对每个学生的导航属性进行了延迟加载,速度非常慢。我想做的是从dbContext获取一个学生列表,其中所有导航属性都已加载(一次数据库访问)C# .NET Linq:如何在实体中加载所有内容,c#,entity-framework,linq,C#,Entity Framework,Linq,我有一个StudentDm链接到数据库中的一个Student表。该学生有20个导航属性(例如StudentEnrollments)和子导航属性。我需要加载一部分学生,但它对每个学生的导航属性进行了延迟加载,速度非常慢。我想做的是从dbContext获取一个学生列表,其中所有导航属性都已加载(一次数据库访问) 在你说这是不好的做法之前:我需要在这种特定情况下这样做,因为我需要将学生的子集导出到excel工作表中,基本上每个字段都是必需的 我不想一个接一个地使用.Include(),因为它不太可维
- 在你说这是不好的做法之前:我需要在这种特定情况下这样做,因为我需要将学生的子集导出到excel工作表中,基本上每个字段都是必需的
- 我不想一个接一个地使用.Include(),因为它不太可维护。有很多导航属性,我也需要在其他地方和其他实体中这样做
- 我不希望做一个数据传输对象,它基本上拥有学生拥有的一切,我认为这是多余的,而且有很多字段
非常感谢任何专家的帮助。在您的实体中,您可以这样做:this.Configuration.LazyLoadingEnabled=false;这将禁用上下文中所有内容的延迟加载,而不仅仅是所需的实体?因为如果我理解正确的话,数据库调用将有20多个联接。如果您可以发布一些示例代码(包括一些“简化”的实体类声明),我们可以帮助您更好地处理您可以执行的实体:this.Configuration.LazyLoadingEnabled=false;这将禁用上下文中所有内容的延迟加载,而不仅仅是所需的实体?因为如果我理解正确的话,数据库调用将有20多个联接。如果您可以发布一些示例代码(包括一些“简化”的实体类声明),我们可以更好地帮助您