我正在尝试将TPT,TPH和实体拆分结合起来
表格Contacts
和Customers
已映射到实体Contact
和Customer
。我使用以下步骤组合了TPT和TPH映射:
1 - 由于Customer
表提供了有关Contacts
子集的其他信息,因此我定义了TPT继承,Customer
实体派生自Contact
1}}实体。
2 - 之后我创建了一个名为AlsoCustomer
的新实体,并选择Customer
作为其基本类型(因此AlsoCustomer
来自Customer
,而这又来自Contact
)。
3 - 然后我使用Customer
和AlsoCustomer
实体创建了TPH继承,其中条件映射确定记录是Customer
类型还是{{1}类型}
到目前为止,一切正常,但当我尝试实施实体拆分时,AlsoCustomer
实体(作为提醒,Customer
- > AlsoCustomer
- &gt ; Customer
)将映射到Contact
和Customer
表,然后我在插入上获得异常:
System.Data.UpdateException:检测到冲突的更改。尝试插入具有相同密钥的多个实体时可能会发生这种情况。
ContactPersonalInfo
或:
var customer = new AlsoCustomer();
...
context.Contacts.AddObject(customer);
context.SaveChanges(); // Exception
以下是相关的MSL部分:
var customer = new Customer();
...
context.Contacts.AddObject(customer);
context.SaveChanges(); // Exception
为什么我得到例外的任何想法?
谢谢