0

と がある状況がCommon.Domain.PersonありSpecific.Domain.Personます。

最初の 1 つは、共通パッケージの一部として提供する必要があります。
2 つ目は、特定のプロジェクトのニーズに合わせて共通パッケージをカスタマイズする必要がある場合に表示されます。

オブジェクト モデルでは、継承を使用して簡単に実装できます。
ただし、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 に答える