我有两个实体CUSTOMER和ORDER。。从CUSTOMER到ORDER存在一对多关系,其中CustomerID是客户的主键,ORDER中是外键。。现在我想在ORDER实体中添加来自customer实体的客户名称属性。。。我已经复制了这个属性并将其粘贴到ORDER表中,并添加了CUSTOMER表并将这个属性映射到CUSTOMER表格的相同属性。。但当我试图验证它时,与给我一个错误相比
3024:映射从第239行开始的片段时出现问题:必须指定EntitySet ORDER 的所有密钥属性(ORDER.OrderID)的映射
这在映射中是不可能的。不能以这种方式将属性从Customer
表添加到Order
实体中。将属性从多个表映射到同一个实体有非常严格的规则,在这种情况下是不可能的。
您可以在Order类中公开客户的名称,而无需在映射中进行定义。创建Order
类的部分并添加自定义计算属性(未映射):
public partial class Order
{
public string CustomerName
{
get
{
// Customer is navigation property to Customer entity
return Customer.Name;
}
}
}
这将需要使用Order
加载Customer
(急切加载)或使用延迟加载。此外,此属性不能在Linq-to-entities查询中使用。