Я добавил очень незначительную миграцию в свой проект.Он просто меняет тип данных пары столбцов на decimal(5,2)
.Команда Add Migration
создает класс миграции.Однако команда Update-Database
вызывает исключение.
Кроме того, Remove-Migration
выдает то же исключение:
Возникло исключение, которое, вероятно, связано с временным отказом.Если вы подключаетесь к базе данных SQL Azure, рассмотрите возможность использования SqlAzureExecutionStrategy.
Я использую локальную базу данных SQL Server 2014.Моя строка подключения для целей разработки очень проста:
"DbConnectionString": "Server=.;Database=DBNAME;Trusted_Connection=True;MultipleActiveResultSets=true"
Она хранится в файле config.json
.Я использую самую последнюю версию Visual Studio VS VS 15.8.5.
Я обновил веб-проект до .NET Core 2.1, а затем в Nuget обновил до последней стабильной версии 2.1.4.Это вызвало изменение в сообщении об ошибке, которое теперь выглядит так:
Возникла исключительная ситуация, которая, вероятно, вызвана временным сбоем.Подумайте о включении устойчивости к временным ошибкам, добавив EnableRetryOnFailure()
к вызову UseSqlServer
.
Я пошел в свой класс запуска и добавил это свойство EnableRetryOnFailure
, хотя сомневаюсь, что это кореньэта проблема.
services.AddDbContextPool<AppDbContext>(options => options.UseSqlServer(_configuration.GetConnectionString("DbConnectionString"), builder =>
{
builder.EnableRetryOnFailure(5, TimeSpan.FromSeconds(10), null);
}));
Сгенерированный класс миграции:
public partial class v50 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<decimal>(
name: "LnRrSncsm",
table: "Jobs",
type: "decimal(5, 2)",
nullable: false,
oldClrType: typeof(float));
migrationBuilder.AlterColumn<decimal>(
name: "LnRrQsnqcsm",
table: "Jobs",
type: "decimal(5, 2)",
nullable: false,
oldClrType: typeof(float));
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<float>(
name: "LnRrSncsm",
table: "Jobs",
nullable: false,
oldClrType: typeof(decimal),
oldType: "decimal(5, 2)");
migrationBuilder.AlterColumn<float>(
name: "LnRrQsnqcsm",
table: "Jobs",
nullable: false,
oldClrType: typeof(decimal),
oldType: "decimal(5, 2)");
}
}