我正在使用这些软件包:
<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已经存在
答案 0 :(得分:0)
我能够找出解决方案(“变通”)。如果我删除所有迁移文件并重新生成所有迁移文件,然后更新数据库,它将正常工作。
步骤1:-删除所有迁移文件+快照文件
步骤2:-生成迁移文件dotnet ef迁移添加
第3步:-dotnet ef迁移脚本
现在,如果您搜索输出,它将显示“创建序列” sql命令,这在我以前尝试进行操作时会丢失。