【问题标题】:Migration for Sequence not working on ASP.NET Core 2.1序列迁移不适用于 ASP.NET Core 2.1
【发布时间】:2019-05-09 22:20:56
【问题描述】:

我正在使用这些包:

<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 已经存在

【问题讨论】:

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


    【解决方案1】:

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

    第一步:- 删除所有迁移文件+快照文件

    第 2 步:- 生成迁移文件 dotnet ef migrations add

    第 3 步:- dotnet ef 迁移脚本

    现在,如果您搜索输出,它会显示“创建序列”sql 命令,这是我之前尝试使用时丢失的。

    【讨论】:

      猜你喜欢
      • 2019-11-12
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 2020-03-23
      • 2020-07-24
      • 1970-01-01
      相关资源
      最近更新 更多