C#WPFのLinqデータベースのDataContextを処理する最善の方法(プラクティス)は何ですか?すべてのviewModelで共有されるグローバルアプリケーション全体のDataContextを使用するか、すべてのトランザクションに対して独自のDataContextを開くことができますか?Linq DataContextのベストプラクティス
msdnとStackOverflowの情報に基づいて、すべてのトランザクションに対して新しいDataContextを作成することをお勧めします。しかし、私の場合、あるビューモデルでデータを検索し、別のビューモデルに渡して値を変更したいとします。変更するビューモデルで新しいDataContextを作成すると、オブジェクトの状態が不一致になります。
よりよく理解するためのシーケンス図で「EditViewModel」ができない(最初のビューモデルにおける選択されたオブジェクトは、オブジェクトが古いのDataContextにバインドされているので、第二のビューモデルのDataContextの中に存在しません)オブジェクトが "LookupViewModelの" DataContextに関連しているため、渡された値を新しいDataContextで編集します。
私はDataContextも渡すことを考えました。しかし、LookupViewModelはeditViewModelを呼び出すときに時間制限がないため、DataContextが期限切れになる可能性があります。 (リフレッシュが不可欠です)。さらに、別のDataContexts値から異なるviewModelを1つのeditViewModelに渡すこともあります。
例外を受け取らずに別のDataContext内のDataContextからオブジェクトを辿る方法を教えてください。あるいは、アプリケーション設計全体を完全に再考するべきではありませんか?
アボウいくつかのソリューションに入るDataContextスコープEntity Frameworkの場合ですが、linq http://mehdi.me/ambient-dbcontext-in-ef6/ – Mats391