Команда "Обновление-База данных" не работает с исключением TimeOut

Я использую EF-миграции и имею таблицу с большим количеством данных. Мне нужно изменить MaxLength конкретного столбца (у него не было ограничений длины).

ALTER TABLE MyDb ALTER COLUMN [MyColumn] [nvarchar](2) NULL

И эта команда выходит из строя с исключением TimeOut. Пытался установить конструктор CommandTimeout я nDbContext без везения.

Можно ли отключить или настроить тайм-аут для команд EF для диспетчера пакетов?

Ответ 1

Найден решение самостоятельно.

Так как EF5 существует новое свойство CommandTimeout, доступное из DbMigrationsConfiguration

internal sealed class MyMigrationConfiguration : DbMigrationsConfiguration<MyDbContext>
{
    public Configuration()
    {
        CommandTimeout = 10000; // migration timeout
    }
}

Ответ 2

В качестве альтернативы script внесите изменения с помощью

Update-Database -script

Затем вы можете взять script и запустить его с помощью SQL Management Studio в базе данных.

Ответ 3

У меня было почти то же самое: время ожидания истекло при попытке увеличить длину столбца. Для меня использование update-database работало всего лишь час назад. Проблема оказалась открытой транзакцией в базе данных и таблице, которую я пытался изменить. Как только я откатил эту транзакцию, команда update-database прошла без проблем.