C# 使用“时,如何筛选不需要的表?”;包括“;?
我的噩梦还在继续。我注意到,当我使用eager loadingC# 使用“时,如何筛选不需要的表?”;包括“;?,c#,sql,linq,entity-framework,C#,Sql,Linq,Entity Framework,我的噩梦还在继续。我注意到,当我使用eager loadinginclude时,所有相关的表都将检索到我的应用程序中。例如,1有3个表/POCO,如下所示,从下面的POCO和linq我只想检索2个表,但是当我检查生成T-SQL时,所有3个表都将检索,我如何排除表3 Poco public class TableA{ public virtual ICollection<TableB> B { get; set; } } public class TableB{ publ
include
时,所有相关的表都将检索到我的应用程序中。例如,1有3个表/POCO,如下所示,从下面的POCO和linq我只想检索2个表,但是当我检查生成T-SQL时,所有3个表都将检索,我如何排除表3
Poco
public class TableA{
public virtual ICollection<TableB> B { get; set; }
}
public class TableB{
public virtual ICollection<TableC> C { get; set; }
}
public class TableC{
}
如果要对加载的实体进行细粒度控制,请使用:
db.Configuration.LazyLoadingEnabled = false;
请注意,对于DbContext的每个实例,您可以获得延迟加载,也可以获得渴望加载
您不应该在同一个实例上同时使用这两种方法。理想情况下,不要使用即时加载。除非你有理由不告诉我们…展示实际的代码和用例。查询没有理由拉表C,所以它不应该这样做,这让我相信您遗漏了一些内容。为了进一步测试,我将删除您的Include语句,并关闭所需表的延迟加载。请看这篇文章,了解如何
db.Configuration.LazyLoadingEnabled = false;