渴望加载嵌套的一对一导航属性

时间:2013-11-09 05:14:28

标签: c# entity-framework

假设我有以下课程:

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导航属性。谁可以帮我这个事?非常感谢。

1 个答案:

答案 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();