通过继承与实体框架关联设计实体模型

时间:2014-04-29 14:53:15

标签: entity-framework inheritance entity-framework-6 table-per-type

我正在使用EF 6 Code First,我正面临一个设计决定:

实体模型

我有一个抽象的实体,它由几个具体的实体实现,每个实体都向实体添加了几个属性。我有多态关联(基类有几个相关的实体),所以当在EF中映射它时,它为TPT继承提供了明确的案例。 (此处为读者提供更多信息:http://weblogs.asp.net/manavi/archive/2010/12/28/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-2-table-per-type-tpt.aspx

TPT设计的问题

我关心的是,我有几个案例,我只需要在基类上处理数据。具体来说,我有几个计划的批处理过程需要加载实体并执行计算和更新。

TPT继承将导致在所有子类型表上执行JOIN,这对我的情况来说是不必要的。

第二个设计选项

我的第二个选择是为父类型和子类型创建单独的具体实体,并完全忘记继承。

从SQL的角度来看,这些设计将是等效的。从面向对象的角度来看,此选项不正确。另外,从父母那里到达子实体不够 clean

何时使用哪种设计?

就个人而言,我倾向于第二种设计(协会),因为我的大部分案例都会更简单,更简单。 (ORM工具处理的逻辑越少意味着更多的控制和简单性。)

我的问题是何时使用哪种设计。

0 个答案:

没有答案