0

私は、数秒ごとに呼び出される Web サービスを持っています。これは、一連のことを実行してから、SaveChanges() を呼び出すのに現在平均で 0.5 秒かかる一括挿入を実行します。すべての変更を非同期に保存したいのは、Web サービスを 1 秒間に複数回呼び出して、データベースの変更をバッファリングしてクォーツ タイマーで保存できるためです。これにより、パフォーマンスが向上するはずです。

Web サービス関数の実行後、エンティティ データベース モデル オブジェクトで "SaveChanges" が呼び出されなかった場合、保留中のデータベースの変更がロールバックされることがわかりました。

変更を非同期的にデータベースに保存することはできますか? また、どのようにすればよいですか?

4

1 に答える 1

0

原則として、.NET で利用可能な非同期アプローチのいずれかをそのような目的で使用できます。.NET 4.5 を使用できる場合は、非常に使いやすい async/await メソッドを検討することをお勧めします。エンティティ フレームワークは、ボックスから async/await をサポートしていませんが、TaskCompletionSourceクラスを使用して単純なラッパーを追加できます。

于 2013-01-22T20:18:18.480 に答える