2016-11-11 11 views
1

DbContext.SaveChanges()メソッドのデフォルトのタイムアウト値はありますか。私はsavchanges()メソッドを使用してデータをデータベースに保存するアプリケーションに取り組んでいます。ただし、この方法では、次のエラーメッセージが表示されます。db.savechanges()のデフォルトのタイムアウト値?

"操作が完了する前にタイムアウト時間が経過しているか、サーバーが応答していません"。

+0

ctx.Database.CommandTimeout = 120 //必要なだけ増やします。 –

答えて

1

このエラーが原因になることがあります。 どこかのコードおよび/またはクエリでデッドロックが複雑で、チューニングする必要があります。 上記の点を考慮して見つけてください。解決しない場合はお知らせください

ありがとうございました。

+0

いいえ照会は、linqを使用してデータベースにレコードを挿入する簡単な照会です。アプリケーションは1つのサーバーで正常に動作していますが、他のサーバーでは失敗しています。 –

1

あなたがタイムアウトを指定しない限り:

context.Database.CommandTimeout = 1000; 

デフォルトのタイムアウトは、(私はあなたがそれを変更することができわからないんだけど、うまくいけば、より大きなタイムアウトを設定することに役立つかもしれない)のコネクタから取得されます。

EDIT: はまた、あなたがDbContextは、接続の開閉を処理させる、その方法を囲むときは、使用してのような

using(var ctx = new Entity()) 
{ 
    ctx.Object.AddObject(a); 
    ctx.SaveChanges(); 
} 

以内に治療を同封してください。

まだ開いていて、別のものを開くことができないと思われます。

関連する問題