私は 2 層の WPF/EF Code First アプリケーションに取り組んでいます。私はたくさんのグーグルをしましたが、探していたもののサンプル実装を見つけることができませんでした...このフォーラムの誰かが私を助けてくれることを望んでいました. 要件は次のとおりです。
- アプリ起動時
- DBContext を開く
- アプリケーションの起動時に、さまざまなマップ/リストに参照データをキャッシュします
- コンテキストを閉じます。
- ユーザーがフォームを開いたとき
- DBContext を開きます (ここでは UnitOfWork パターンを使用しています)
- 編集のためにコンテキストからエンティティの新しいコピーを取得します。
- [保存] ボタンが押されたときに SaveChanges() を呼び出します。
- コンテキストを閉じます。
Cache のオブジェクトを使用してナビゲーション プロパティを変更すると、問題が発生します。たとえば、ドロップ ダウン (別の DBContext を使用して作成されたキャッシュに基づく) を使用して、Department ナビゲーション プロパティを設定します。
UnitOfWork は、エンティティが別の DBContext にロードされたことを示す例外をスローするか (Department が遅延ロードされた DynamicProxy の場合)、Department テーブルに新しい行を挿入します。
参照データがキャッシュされている例を 1 つも見つけることができませんでした...誰もこの問題に遭遇しなかったとは信じられません。適切な場所を探していないか、適切なキーワードを使用していません。これがEFを使用して実行できることを願っています。あなたの経験を共有したり、いくつかの参考文献を投稿したりしていただければ幸いです。私はこれに慣れていないので、あまりにも多くのフレームワークを使用することを避け、WPF/EF スタックを使用した POCO に固執したいと考えています。