实体框架一对多关系概念模型中的关联



我有两个实体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查询中使用。

最新更新