2009-07-08 5 views
2

Entity Frameworkを使用してデータベースと会話するWPFアプリケーションを開発しています。アプリケーションの応答性を維持するために大きな問題があります。 DataContextはスレッドセーフではないため、バックグラウンドスレッドからのデータアクセスはできません。オブジェクトトラッキングのためにDataContext間にオブジェクトを渡すことはできません(私は3週間試しました...それは常にソートので動作しますが、決してすべてではありません)。Entity Frameworkを使用した非同期プログラミング

私がやりたいことは、データアクセスが行われている間にアプリケーションを応答し続けることです。これを実現するためにEntity Frameworkでどのパターンを使用しましたか?

おかげで、
ロイ

+0

[Entity Framework 4.0を使用する必要がありますか?](http://izlooite.blogspot.com/2011/04/should-i-ever-use-entity-framework-40.html) –

答えて

0

EFはまだ(少なくともウェルまたは)遅延ロードを実装していない、それはあなたのパフォーマンスの問題の一部である可能性がありますので。このため、階層化されたクエリ(クエリの上位のクエリ)が苦しむでしょう。

あなたはそれでかなり精巧なことをしようとしているようですね。トランザクションの観点から考えてみてください。選択、更新、コミットなどです。新規作成、挿入、コミット。選択、削除、コミット。

任意のリポジトリまたはスレッド内で、常に1つのDataContextで作業します。データコンテキスト内でオブジェクトを渡すことは、わかっているように、難しいことです。しかし、それは同じデータの文脈内の微風でなければならない。

関連する問題