0

我有一种情况,我有一个Common.Domain.Personand Specific.Domain.Person

第一个应该作为通用包的一部分提供。
当必须定制通用包以适应特定项目的需求时,会出现第二个。

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

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

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

4

2 回答 2

1

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

另请参阅在 Nhibernate 中使用 Doctype

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

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

于 2010-05-26T10:02:32.760 回答
0

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

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

于 2010-05-25T19:52:59.850 回答