我在迁移EF Core时遇到问题。
为了使情况更清楚,我将其分配给现有数据库,该数据库旨在从现在开始使用迁移进行数据库控制。但是我有困难。
到目前为止我所做的。
[我从现有数据库生成了脚手架。
[我添加了迁移,因此它为数据库创建生成了所有“ Up”。
到目前为止,一切都很正常。但是从这个步骤开始,每次我生成新迁移时,他(迁移)都坚持要为所有表创建一个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);
});
假设您正在使用Core 3.0或Core 3.1!
添加包Microsoft.EntityFrameworkCore.Relational
此外,您可能需要在映射中明确指定标识列。
builder.Property(o => o.Id).ValueGeneratedOnAdd().UseIdentityColumn();