21

私は最近 LinqPad を使い始め、オートコンプリート オプションを購入しましたが、とても気に入っています。これは優れた製品です!

LinqPAD で SQL Server データベースをクエリするときに使用されるコマンド タイムアウトを制御する方法があるかどうかを尋ねたかった (私は c# ステートメントを使用しています)。実際の接続文字列にアクセスできる場所がわかりません。また、タイムアウトになっているレポート用の大きなクエリがいくつかあります。タイムアウトは 30 秒にハードコーディングされているようです。

助けてくれてありがとう!

4

3 に答える 3

18

数分かかるクエリを実行しましたが、コマンドがタイムアウトすることはありませんでした。そうは言っても、ここでそれを変更する方法は...


内で実行するすべての作業UserQuery。はそのCommandTimeoutプロパティです。

this.CommandTimeout = 60;

の下にあるすべてのプロパティを見てくださいthis。それは、あなたができることのいくつかについての素晴らしい洞察を与えてくれます。

于 2011-12-09T16:52:51.997 に答える
11

「通常の」接続を使用してLinqPADでSQL Serverデータベースをクエリするときの@DaveShawの回答で述べたように、次を使用できます。

this.CommandTimeout = 60

ただし、LinqPad が EF-library を使用して DB に接続する場合、このプロパティは使用できません。を使用this.CommandTimeoutすると、次の結果が得られます。

'UserQuery' には 'CommandTimeout' の定義が含まれておらず、タイプ 'UserQuery' の最初の引数を受け入れる拡張メソッド 'CommandTimeout' が見つかりませんでした (F4 キーを押して、using ディレクティブまたはアセンブリ参照を追加してください)

一般的なEFタイムアウトに関するいくつかの不可解な回答とこの回答により、EF接続でこれを使用するようになりました。

(this as IObjectContextAdapter).ObjectContext.CommandTimeout = 60;
于 2013-03-21T09:37:31.110 に答える
3

Entity Framework Core 接続では、代わりに次のプロパティを使用しました。
this.Database.SetCommandTimeout(120);

于 2020-10-27T21:12:24.307 に答える