映射抽象类,应该在abstract或child类中映射公共属性

时间:2014-04-29 13:59:45

标签: c# .net nhibernate

ArticleBase继承了ArticleComputerArticleCar。我正在使用带有鉴别器值的nhibernate继承映射。一切都已启动并运行但我有困境,因为ArticleBase具有属性Tags我是否应该在ArticleBaseMap类中映射此属性,或者我应该留给子类来映射这些公共属性。

我想它应该映射到抽象基类中,但我想听听有经验的用户。

由于

1 个答案:

答案 0 :(得分:0)

这里的答案很简单:

  • 如果该属性在ArticleBase (Discriminator列所在的位置)上可用 将其映射到
  • 如果列属于子表(例如ArticleComputer)那么它属于子maping。

那么,那里...... 应该是映射

这并不意味着:声明(base,interface)的地方。原因可能是,在C#中我们在基础实现中做了一些常见的事情,而有些孩子(出于任何原因)不能将其作为映射的一部分(它只是虚拟的)

即:我们应该映射它存在列的位置。没有其他的。然后,如果我们要重复将它映射到所有孩子的所有(因为在那里声明了列)

..改变DB的设计。将其从子项移回父表。