【发布时间】:2021-11-21 05:20:12
【问题描述】:
自:
“在单个查询中急于加载集合导航可能会导致 性能问题。”
见:Source
建议使用带有包含的拆分查询。我想知道是否不是包含在下面的查询中:
var task = await context.Tasks
.Include(x => x.TaskDependencies)
.Select(x => new TaskBaseModel
{
Id = x.Id,
Name = x.Name,
Description = x.Description,
TaskDependencies= x.TaskDependencies.ToArray()
})
.SingleOrDefaultAsync(x => x.Id == _id);
我应该这样做:
var task = await context.Tasks
.Select(x => new TaskBaseModel
{
Id = x.Id,
Name = x.Name,
Description = x.Description,
TaskDependencies= context.TaskDependencies
.Where(y => y.TaskId == x.Id).ToArray()
})
.SingleOrDefaultAsync(x => x.Id == _id);
有人知道这方面的信息吗?关于性能等。
问候
【问题讨论】:
-
文档参考
Include方法。您的两个查询中的Include调用是相同的 (.Include(x => x.TaskDependencies)),那么问题到底是什么? -
抱歉忘记删除第二个包含,现在更新
标签: c# .net entity-framework-core include dbcontext