【发布时间】:2019-04-09 06:29:02
【问题描述】:
我有一个 EF Core 2.1 Code First 模型,在两个类之间具有“父子”类型关系:
class Parent
{
public int Id {get; set;}
public string Name {get; set;}
}
class Child
{
public int Id {get; set;}
public string Description { get; set; }
public Parent Parent { get; set; }
}
我想加载某个父级,并确保它的所有子级实体也都已加载。但是,Child 没有导航属性,我无法修改类,因此无法添加。
dbContext.Parents
.Include(p => p.???)
.Find(1);
我想我可以进行第二次查询,在其中反向查找所有内容:
dbContext.Children.Where(c => c.Parent.Id == loadedParent.Id)
但这似乎不是很有效,尤其是当您加载多个父母并执行以下可怕的事情时:
var parentIds = loadedParents.Select(p => p.Id);
var children = dbContext.Children.Where(c => parentIds.Contains(c.Parent.Id));
当您只有“子到父”导航属性时,是否有办法确保实体已加载?
【问题讨论】:
标签: entity-framework linq ef-code-first ef-core-2.1