MVVM
Entity Framework を使用してプロジェクトに取り組んでいます5.0
。
ホストされた DB に接続すると、Entity Framework が DB への接続を失うことがあります。
接続が失われたときに DB への接続を再接続する最良の方法は何でしょうか?
MVVM
Entity Framework を使用してプロジェクトに取り組んでいます5.0
。
ホストされた DB に接続すると、Entity Framework が DB への接続を失うことがあります。
接続が失われたときに DB への接続を再接続する最良の方法は何でしょうか?
変更の保存中に接続が切断されると、単に例外が発生します。例外のためにコミットされていないトランザクションで全体の保存が行われ、EF は現在の変更セットを完了としてマークしません。その特定の例外が発生したときに、変更を再度保存しようとするだけです-EFは新しい接続を開いて同じトランザクションを実行しようとします
例:まあ、多分このようなもの:
public virtual void SubmitChanges()
{
if (DataContext != null)
{
try
{
DataContext.SubmitChanges();
}
catch (Exception whenILostMyConnection)
{
SubmitChanges(); //recall the sumbitChanges
}
}
}
答えは、Windows Azure ソース コードで確認できます。Azure CRUD 操作では、いくつかの特定の例外の原因となる同じ操作を数回再試行するループにそれらを配置するのが一般的です。ただし、ほとんどの場合、再試行を処理する例外が原因でアプリが遅くなる可能性があるため、非常に注意する必要があります。