Как установить время ожидания команды в Linqpad? - PullRequest
17 голосов
/ 09 декабря 2011

Я недавно начал использовать LinqPad, купил опцию Автозаполнение, и мне она очень нравится. Это отличный продукт!

Я хотел спросить, есть ли способ для меня контролировать время ожидания команды, которое использовалось при запросе базы данных SQL Server в LinqPAD (я использую операторы c #)? Я не могу видеть, где у нас есть доступ к фактической строке подключения, и у меня есть несколько больших запросов для отчетов, время которых истекло. Похоже, что тайм-аут жестко запрограммирован на 30 секунд.

Заранее спасибо за любую помощь!

Ответы [ 2 ]

16 голосов
/ 09 декабря 2011

Я выполнил запросы, которые заняли минуты и у которых никогда не было тайм-аута команды.Тем не менее, вот как вы это измените ...


Вся работа, которую вы выполняете внутри UserQuery.CommandTimeout является свойством этого.

this.CommandTimeout = 60;

Посмотрите на все свойства в this.Это дает вам хорошее представление о некоторых вещах, которые вы можете сделать.

9 голосов
/ 21 марта 2013

Как уже упоминалось в @ DaveShaw's answer при запросе базы данных SQL Server в LinqPAD с использованием «обычного» соединения, вы можете использовать:

this.CommandTimeout = 60

Однако это свойство недоступнокогда LinqPad подключается к БД с помощью EF-библиотеки .Использование this.CommandTimeout приводит к:

«UserQuery» не содержит определения для «CommandTimeout», и невозможно найти метод расширения «CommandTimeout», принимающий первый аргумент типа «UserQuery» (нажмите F4добавить директиву по использованию или ссылку на сборку)

Некоторое недоумение и ответ на этот вопрос о тайм-аутах EF в целом побудили меня использовать это для EF-соединения:

(this as IObjectContextAdapter).ObjectContext.CommandTimeout = 60;
...