Установить время ожидания команды в рамках структуры 4.3

c# .net entity-framework entity-framework-4.3 command-timeout

33108 просмотра

4 ответа

Я не могу найти способ установить тайм-аут команды запроса linq, используя сущность Framework 4.3 и его 'DbContext. Как мне увеличить Commandtimeout в рамках сущности?

РЕДАКТИРОВАТЬ Я на самом деле ищу увеличение времени ожидания команды. Я перепутал два, это команда sql, которая отключает соединение.

Спасибо

Автор: Saher Ahwal Источник Размещён: 06.07.2019 09:53

Ответы (4)


62 плюса

Решение

Если вы используете DbContext, вам сначала нужно перейти в ObjectContext:

((IObjectContextAdapter)context).ObjectContext.CommandTimeout = 180;
Автор: bricelam Размещён: 31.07.2012 08:13

10 плюса

Я добавил значение тайм-аута команды в своем классе 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();
        }
Автор: Maurice Jordan Размещён: 06.01.2015 03:02

9 плюса

этой команды достаточно.

((System.Data.Entity.Infrastructure.IObjectContextAdapter) context).ObjectContext.CommandTimeout
                = 180;
Автор: m-Abrontan Размещён: 30.06.2013 12:48

0 плюса

У меня была проблема с установкой CommandTimeout при использовании await, например так:

await _dbContext.Database.Connection.QueryAsync("Update ...."),

затем я обнаружил в документации https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlcommand.commandtimeout?view=netframework-4.8, что:

Свойство CommandTimeout будет игнорироваться во время асинхронных вызовов методов, таких как BeginExecuteReader.

Я изменился на:

_dataWarehouseDbContext.Database.Connection.Query("Update ...")

и CommandTimeout начинают работать :)

Автор: Wieslaw Olborski Размещён: 26.06.2019 09:30
Вопросы из категории :
32x32