33

エンティティ フレームワーク 4.3 とその DbContext を使用して、linq クエリのコマンド タイムアウトを設定する方法が見つかりません。エンティティ フレームワークで Commandtimeout を増やすにはどうすればよいですか?

編集 私は実際にコマンドタイムアウトの増加を探しています。私は2つを混同しました。接続ではなくタイムアウトしているのはSQLコマンドです。

ありがとう

4

3 に答える 3

64

DbContext を使用している場合は、最初に ObjectContext にドロップダウンする必要があります。

((IObjectContextAdapter)context).ObjectContext.CommandTimeout = 180;
于 2012-07-31T20:13:27.710 に答える
11

アプリケーションにデータを入力している一部のストアド プロシージャの処理時間を長くするために、Context クラスにコマンド タイムアウト値を追加しました。トリックを行ったようです。

public partial class ExampleEntities : DbContext
    {
        public ExampleEntities()
            : base("name=ExampleEntities")
        {
            ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180;
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
于 2015-01-06T15:02:13.487 に答える
9

このコマンドで十分です。

((System.Data.Entity.Infrastructure.IObjectContextAdapter) context).ObjectContext.CommandTimeout
                = 180;
于 2013-06-30T12:48:37.353 に答える