0

私は現在、(Prism-Framework を使用して) 高度にモジュール化され、CodeFirst で実装された EntityFramework を介してデータベースにアクセスするアプリケーションを作成しています。

私の目標は、データベースへのデータの実際の書き込みを、作成されたエンティティの「通常の」使用から分離することです。データベースへの書き込みはメインアプリケーションによってのみ行われますが、モジュールは引き続きエンティティクラスを使用できる必要があります。

したがって、DataContext または少なくとも Entity クラスを知っている必要があります。ただし、ここに問題があります。モジュールがエンティティ クラスのプロパティを変更し、main-Application が何らかの理由で DataContext の "SaveChanges()" を呼び出した場合、モジュールによって行われた変更は自動的にデータベースに保存されます。 main-それを制御するアプリケーション。

どうすればこの動作を防ぐことができますか? モジュールは、メイン アプリケーションへの定義済みインターフェイスを介する場合を除き、データベース コンテンツを変更できてはなりません。

私が最初に考えたのは、すべてのエンティティ クラスに ICloneable を実装し、エンティティ オブジェクトのクローンのみをモジュールに渡して操作することでした。次に、モジュールは、データベースの変更を要求する場合、複製されたオブジェクトを main-Application に渡します。main-Application は元のオブジェクトを更新し、DataContext で「SaveChanges()」を呼び出します。

これは実行可能な解決策だと思いますか、それともこの動作を実装するためのより良い方法があると思いますか?

前もって感謝します!

4

1 に答える 1