我有类似的类结构:
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'不声明导航属性 名称为“协议”。
答案 0 :(得分:1)
我找到了答案:复杂类型不应包含导航属性(以及外键)。