1. ホーム
  2. c#

[解決済み] Entity Frameworkでデータベースのタイムアウトを設定する

2022-04-21 22:29:55

質問

コマンドがタイムアウトし続けるので、デフォルトのコマンドタイムアウト値を変更したいのですが。

私が見つけたのは myDb.Database.Connection.ConnectionTimeout が、それは readonly .

でコマンドタイムアウトを設定するにはどうすればよいですか? エンティティーフレームワーク 5 ?

解決方法は?

これをあなたのコンテキストで試してみてください。

public class MyDatabase : DbContext
{
    public MyDatabase ()
        : base(ContextHelper.CreateConnection("Connection string"), true)
    {
        ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180; // seconds
    }
}


接続文字列の中でタイムアウトを定義したい場合は Connection Timeout パラメータを使用します。

<connectionStrings>

<add name="AdventureWorksEntities"
connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
provider=System.Data.SqlClient;provider connection string='Data Source=localhost;
Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />

</connectionStrings>

出典 How to: 接続文字列を定義する