序列迁移在ASP.NET Core 2.1上不起作用

时间:2018-12-08 10:26:14

标签: postgresql asp.net-core .net-core entity-framework-core

我正在使用这些软件包:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.1.2" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.1.1" />

我的代码:

// generate id 
modelBuilder.HasSequence("UNIQUEIdGenerator", schema: "public")
        .StartsAt(2000000000)
        .IncrementsBy(1);

// TestId is not primary key
modelBuilder.Entity<ModelTest>()
        .Property(d => d.TestId)
        .HasDefaultValueSql("CONCAT('PREFIX', NEXTVAL('\"UNIQUEIdGenerator\"'))");

当我进行迁移时,它获得了成功而没有任何错误,但是当我打开 PGADMIN 并导航到数据库并检查公共模式下的序列时,它没有显示UNIQUEIdGenerator序列。

**注意:-当我为此序列进行迁移时,表ModelTest已经存在

1 个答案:

答案 0 :(得分:0)

我能够找出解决方案(“变通”)。如果我删除所有迁移文件并重新生成所有迁移文件,然后更新数据库,它将正常工作。

步骤1:-删除所有迁移文件+快照文件

步骤2:-生成迁移文件dotnet ef迁移添加

第3步:-dotnet ef迁移脚本

现在,如果您搜索输出,它将显示“创建序列” sql命令,这在我以前尝试进行操作时会丢失。