假设我有以下课程:
class Person
{
public int Id { get; set; }
public Address Address { get; set; }
}
class Address
{
public int Id { get; set; }
public Country Country { get; set; }
}
class Country
{
public int Id { get; set; }
public Name { get; set; }
}
现在使用存储库,我从数据库加载了一个人,但我也想要加载它的Address
属性和地址“Country
属性。我使用以下代码加载直接导航属性。
context.Entry(person).Reference(p => p.Address).Load();
现在我的问题是如何加载已加载的Country
属性的Address
导航属性。谁可以帮我这个事?非常感谢。
答案 0 :(得分:0)
获取引用的查询然后调用include(但是你必须枚举例如.ToArray()
,因为没有Load()
方法可以调用 - 不用担心,EF会挂钩导航属性您的原始实体):
var navPropQuery = context.Entry(person).Reference(p => p.Address).Query()
as System.Data.Objects.ObjectQuery<Address>;
navPropQuery.Include( "Country" ).ToArray();