NHibernate:完全覆盖基本域实体

时间:2010-05-25 17:35:24

标签: nhibernate nhibernate-mapping extensibility domain-model

我的情况是Common.Domain.PersonSpecific.Domain.Person

第一个应作为普通包装的一部分提供 当必须定制通用包以满足特定项目的需要时,会出现第二个。

在对象模型中,可以通过继承轻松实现 然而,在NH映射中,我遇到了一个小问题。

我可以创建一个NHibernate <subclass>映射,但这需要我使用一个鉴别器。但是,我知道如果继承了特定的人类,那么在这个特定的项目中永远不会使用公共类实例。

在不向基类添加鉴别器列的情况下实现此目的的最佳方法是什么(因为没有不同的区分情况)?

2 个答案:

答案 0 :(得分:1)

这是我想要的,nhibernate使用xml实体支持它。不幸的是,自从(至少)NH v2 ++以来,这个功能已被禁止。

另见Using Doctype in Nhibernate

解决方法可能是在创建SessionFactory(动态映射)时以编程方式注入这些属性

另见http://ayende.com/Blog/archive/2008/05/01/Dynamic-Mapping-with-NHibernate.aspx

答案 1 :(得分:0)

只需映射Specific.Domain.Person并将Common.Domain.Person保留为未映射。

如果你没有保存它的实例,NHibernate不需要知道它。