我的情况是Common.Domain.Person
和Specific.Domain.Person
。
第一个应作为普通包装的一部分提供 当必须定制通用包以满足特定项目的需要时,会出现第二个。
在对象模型中,可以通过继承轻松实现 然而,在NH映射中,我遇到了一个小问题。
我可以创建一个NHibernate <subclass>
映射,但这需要我使用一个鉴别器。但是,我知道如果继承了特定的人类,那么在这个特定的项目中永远不会使用公共类实例。
在不向基类添加鉴别器列的情况下实现此目的的最佳方法是什么(因为没有不同的区分情况)?
答案 0 :(得分:1)
这是我想要的,nhibernate使用xml实体支持它。不幸的是,自从(至少)NH v2 ++以来,这个功能已被禁止。
解决方法可能是在创建SessionFactory(动态映射)时以编程方式注入这些属性
另见http://ayende.com/Blog/archive/2008/05/01/Dynamic-Mapping-with-NHibernate.aspx
答案 1 :(得分:0)
只需映射Specific.Domain.Person并将Common.Domain.Person保留为未映射。
如果你没有保存它的实例,NHibernate不需要知道它。