私は現在、ドメインモデル&アプリケーションプラグインによってリポジトリを拡張できるソリューションを設計しています。今、私はいくつかの問題に出くわしました。NHibernateを使った拡張可能なドメインモデル
私の最初の問題は、ドメインモデルを拡張可能にすることです。私はここで継承を使用することを考えていましたが、正直なところ、同じドメインオブジェクトを拡張する複数のプラグインアセンブリをどのように活用できるのか分かりません。私は、すべてのドメインオブジェクトを部分的にして、プラグインがこれをこのように拡張できるようにするのにはちょっと傾いています。私は複数のプラグインが同じドメインオブジェクトを拡張している場合、私は各プラグインの異なる拡張ドメインアセンブリを読み込む心配する必要はありません。私はまだ実行時に1つのマージされたドメインオブジェクトを持っています。これに関するアイデア?
もう1つの問題は、NHibernateマッピングファイルを拡張することです。私は各アセンブリに、拡張しているドメインオブジェクト用のマッピングファイルを埋め込み、NHibernateマネージャにコアドメインで提供されているものの代わりにロードすることができます。繰り返しますが、同じドメインオブジェクトを複数のプラグインで拡張した場合の問題です。 1つのプラグインでもう一方のマッピングファイルを上書きすることができます。 最後の問題を解決する方法はそれほど大したものではありませんが、プラグインアセンブリにチェックサムを含めることを考えていました。ロード時にこのチェックサムを確認し、チェックサムが一致すればプラグインマップのみを読み込むことができます。かなり醜いですが、少なくとも私はプラグインアセンブリで拡張するために使用されたベースマップと異なるマップをオーバーライドしません。
いずれにしても、あなたの意見を聞いてみたいです。ありがとう!
ありがとうございました!私はサブクラス属性について簡単に読んで覚えていますが、決してあまり考えなかったのです。 NHでこれを行う能力は、私が思ったよりもはるかに簡単になります。 –