EF Core始终在添加迁移时创建.Annotation(“ SqlServer:Identity”,“ 1,1”)

问题描述 投票:0回答:1

我在迁移EF Core时遇到问题。

为了使情况更清楚,我将其分配给现有数据库,该数据库旨在从现在开始使用迁移进行数据库控制。但是我有困难。

到目前为止我所做的。

  1. [我从现有数据库生成了脚手架。

  2. [我添加了迁移,因此它为数据库创建生成了所有“ Up”。

  3. 在一个干净的数据库中,运行更新数据库。

到目前为止,一切都很正常。但是从这个步骤开始,每次我生成新迁移时,他(迁移)都坚持要为所有表创建一个Alter Column语句。例如:

  migrationBuilder.AlterColumn<int>(
            name: "rac_n_codigo",
            table: "tb_rac_raca",
            nullable: false,
            oldClrType: typeof(int),
            oldType: "int")
            .Annotation("SqlServer:Identity", "1, 1");

创建表

  migrationBuilder.CreateTable(
            name: "tb_rac_raca",
            columns: table => new
            {
                rac_n_codigo = table.Column<int>(nullable: false)
                    .Annotation("SqlServer:Identity", "1, 1"),
                rac_c_nome = table.Column<string>(unicode: false, nullable: true),
                rac_d_alteracao = table.Column<DateTime>(type: "date", nullable: true),
                rac_c_usuario = table.Column<string>(unicode: false, nullable: true),
                rac_c_tipo = table.Column<string>(unicode: false, nullable: true),
                rac_d_modificacao = table.Column<DateTime>(type: "datetime", nullable: true),
                rac_c_unique = table.Column<Guid>(nullable: false, defaultValueSql: "(newid())"),
                rac_d_atualizado = table.Column<DateTime>(type: "datetime", nullable: false, defaultValueSql: "(getdate())"),
                rac_d_inclusao = table.Column<DateTime>(type: "datetime", nullable: false, defaultValueSql: "(getdate())")
            },
            constraints: table =>
            {
                table.PrimaryKey("PK_tb_rac_raca", x => x.rac_n_codigo);
            });
.net-core entity-framework-core ef-migrations ef-core-2.2
1个回答
0
投票

假设您正在使用Core 3.0或Core 3.1!

添加包Microsoft.EntityFrameworkCore.Relational

此外,您可能需要在映射中明确指定标识列。

builder.Property(o => o.Id).ValueGeneratedOnAdd().UseIdentityColumn();
© www.soinside.com 2019 - 2024. All rights reserved.