我有两个实体:
public class Parent
{
public Guid Id { get; set; }
public string Name { get; set; }
}
public class Child
{
public Guid Id { get; set; }
public string Name { get; set; }
public Parent Parent { get; set; }
}
我可以使用 Include 查询有或没有父实体的子实体。
public void Test()
{
var child = context.Set<Child>().Include(x => x.Parent)
.FirstOrDefault(x => x.Id == Guid.Parse("<some_id>"));
}
但是在某些情况下,我已经将所有父实体缓存在内存中,并且我想跳过连接并查询仅加载了 Id 属性的子实体。然后通过 Id 从缓存中获取实际的 Parent:
public void Test()
{
var cachedParents = new List<Parent>();
var child = context.Set<Child>()
.FirstOrDefault(x => x.Id == Guid.Parse("<some_id>"));
var parent = cachedParents.FirstOrDefault(x => x.Id == child.Parent.Id);
}
但是 child 加载了 child.Parent == null。
有什么方法可以加载 child.Parent 或仅访问 child.Parent.Id (ParentId 列)属性?