我有以下表结构:
Table: Plant
PlantID: Primary Key
PlantName: String
Table: Party
PartyID: Primary Key
PartyName: String
PlantID: link to Plant table
Table: Customer
PartyID: Primary Key, link to Party
CustomerCode: String
我想让Customer实体对象包含以下字段:
PartyID: Primary Key
CustomerCode: String
PartyName: String
PlantName: String
我遇到了PlantName字段(从Plant表中获取) 我将客户与党和党与工厂联系起来 但是,我不能将客户与工厂联系起来(因为它没有) 我无法将Plant表添加到映射中,当我这样做时 - 我收到以下错误:
Error 3024: Problem in Mapping Fragment starting at line 352: Must specify mapping for all key properties (CustomerSet.PartyID) of the EntitySet CustomerSet
删除植物协会的工作。 任何提示或方向非常赞赏。
答案 0 :(得分:3)
您可以使用实体对象上的引用路径获取这些字段。
要获取PartyName,请使用以下语法:Customer.Party.PartyName
要获取PlantName,请使用以下语法:Customer.Party.Plant.PlantName
答案 1 :(得分:2)
您可以使用公共分部类扩展Customer实体:
public partial class Customer
{
public string PartyName
{
get { return Party.PartyName; }
set { Party.PartyName = value; }
}
public string PlantName
{
get { return Party.Plant.PlantName; }
set { Party.Plant.PlantName = value; }
}
}
答案 2 :(得分:1)
经过一些研究,我在MSDN上遇到了这个thread,它说你可以创建一个只读实体,这不足以让它不单独使用,但它会变得更糟。您还将无法根据数据库的架构动态更新所有模型。