我们可以将TPT,TPH和实体拆分结合在一个层次结构中吗?

时间:2012-03-08 19:07:52

标签: entity-framework entity-framework-4.1

我正在尝试将TPT,TPH和实体拆分结合起来

表格ContactsCustomers已映射到实体ContactCustomer。我使用以下步骤组合了TPT和TPH映射:

1 - 由于Customer表提供了有关Contacts子集的其他信息,因此我定义了TPT继承,Customer实体派生自Contact 1}}实体。
2 - 之后我创建了一个名为AlsoCustomer的新实体,并选择Customer作为其基本类型(因此AlsoCustomer来自Customer,而这又来自Contact)。
3 - 然后我使用CustomerAlsoCustomer实体创建了TPH继承,其中条件映射确定记录是Customer类型还是{{1}类型}

到目前为止,一切正常,但当我尝试实施实体拆分时,AlsoCustomer实体(作为提醒,Customer - > AlsoCustomer - &gt ; Customer)将映射到ContactCustomer表,然后我在插入上获得异常:

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

为什么我得到例外的任何想法?

谢谢

0 个答案:

没有答案