【发布时间】:2019-07-23 21:33:11
【问题描述】:
在 .net 核心 2.2 中 我有一个这样的模型:
public class A
{
public ICollection<B> B { get; set; }
}
public class B
{
public ICollection<C> C { get; set; }
public ICollection<D> D { get; set; }
}
public class C
{
}
public class D
{
}
查询是这样的:
var query = from record in Set<A>()
where record.Id == Id
select new AProjection
{
BProjection =( from bRecord in Set<B>()
where bRecord.Id = record.BId
select new BProjection
{
CProjection = bRecord.C.Select( b => new CProjection {/* data here */ }),
DProjection = bRecord.C.Select( b => new DProjection {/* data here */ })
})
}
我想将数据返回到投影中,但是对于 B 类的每个对象都进行查询以获取 C 类对象和另一个以获取 D 类对象。如何避免这种行为?
这是此问题中解决的典型 N+1 查询问题:
【问题讨论】:
标签: c# .net .net-core ef-core-2.2