Fluent NHibernate を使用しています。同じデータベースを使用するアプリケーションがいくつかあります (主に、アプリケーション自体と、そのための構成およびレポート ツールで、別の .exe です)。それらは現在、共通の .dll で流暢に定義された同じマッピングを共有しています。それらの大きな違いは、データベースの一部の使用方法が大きく異なることです。あるツールでは読み取り専用ですが、別のツールでは読み取りと書き込みが可能なテーブルがいくつかあります。ツールが「間違った」テーブルにデータを書き込まないようにしたいと思います。
私の考えは、各ツールの各マッピングを少し異なるものにすることです。マッピングの一般的なベースは同じですが、マッピング構成を実行しているツールの名前をチェックする拡張メソッドを追加し、ツールごとに異なるいくつかのマッピング仕様を追加できます。
- 一部のツールでは、一部のテーブルを .ReadOnly() (mutable="false") にしたい
- ツールごとにカスケードのオン/オフを切り替える必要があります。
しかし、私が正しいと思うかどうか、私は少し確信が持てません。それに関する落とし穴はありますか?これを達成するためのより良い方法はありますか?