【发布时间】:2017-06-11 23:22:33
【问题描述】:
我正在使用 EF6,我注意到当我在查询中“包含”一个子表时,EF 会为每个父行触发一个新查询……可以吗?有没有办法避免它并使其仅通过主查询带来所有信息?
这是我的实体(不是确切的代码):
public class Contractor
{
public int id { get; set;}
public IEnumerable<ContractorEmployee> Employees;
}
public class ContractorEmployee
{
public int id { get; set;}
public int contractorId { get; set;}
}
这是查询:
var fullContractors = dbContext.Contractors.Include("ContractorEmployee");
因此,如果 fullContractors 查询检索到 5 个承包商,我会在 SQL 中看到 5 个额外查询,其中包含每个承包商的雇员。
有什么办法可以避免这种情况并将其全部放在第一个“SELECT”中???
【问题讨论】:
-
你怎么知道它触发了 5 个额外的查询?
-
向我们展示如何在您的代码中稍后使用 fullContractors。
-
经过一段时间检查这个问题后,我意识到这是我的代码中的一个错误,对不起,请删除这篇文章,如果你不给我投票,我完全明白。
-
我投票决定将此问题作为离题结束,因为这是我正在处理的代码中的错误,而不是 EF6 的错误,抱歉。
标签: c# sql entity-framework entity-framework-6