MS Entity Framework:如何使用继承拆分实体?使用鉴别器

时间:2011-08-04 21:53:04

标签: entity-framework inheritance mapping

我在DB中有表名Transaction。我想要2个子类TransactionA和TransactionB。我按照这里描述的那样做了:http://www.robbagby.com/entity-framework/entity-framework-modeling-table-per-hierarchy-inheritance/comment-page-1/#comment-607

问题是我需要在这里使用作为鉴别器的字段(参见示例,那里是PersonCategory)。但是在我不能使用之后必须将其删除。

如何解决这个问题? 感谢

2 个答案:

答案 0 :(得分:1)

如果是歧视器,其唯一用途是将记录映射到TransactionATransactionB。它无法在应用程序中设置。如果插入TransactionA实例或TransactionB实例和记录,则设置它。它也无法更新,因为一种类型的对象无法更改为其他类型的对象 - 如果您需要这样的逻辑,则无法将其建模为继承。

答案 1 :(得分:1)

是的,它被用作EF助手来识别对象的特定类型的类型。一个缺点是方法是每个字段应该是可空字段并且表没有规范化。但是,没有涉及连接,因此它是快速的方法。每种类型的表是比较好的方法,你有两个类TransactionA和TransactionB,使用称为Transaction的泛型类。虽然,你必须做连接,因此,性能不是早期方法的好处。