EF延迟加载:EntityType不声明具有名称的导航属性

时间:2012-10-12 20:22:30

标签: entity-framework lazy-loading

我有类似的类结构:

public class Customer{
         public AgreementDetails Agreement { get; set; }
}

[ComplexType]
public class AgreementDetails{
    public int SalesPersonId { get; set; }
    [ForeignKey("SalesPersonId")]
    [NotMapped]
    public virtual SalesPerson Sales { get; set; }
}
public class SalesPerson
{
...
}

当我显示客户列表时,我正在调用Sales属性以消除销售人员的详细信息,但属性为空,通常对于导航属性,这可以避免使用.Include方法,但它在我的情况下不起作用,所以查询是

List<Customer> res = db.Customers.Include(c=>c.Agreement.Sales).ToList();

例外是:

  

指定的包含路径无效。 EntityType   'CodeFirstNamespace.Customer'不声明导航属性   名称为“协议”。

1 个答案:

答案 0 :(得分:1)

我找到了答案:复杂类型不应包含导航属性(以及外键)。