【发布时间】:2019-05-04 06:15:19
【问题描述】:
当使用 Assembly IdentityServer4.EntityFramework.Storage 中的 ConfigurationDbContext 时
并使用IdentityServer4.Models.Client 实体播种数据库
我收到以下错误:PostgresException: 23502: "Id" 列中的空值违反非空约束
我查看了数据库,结果发现该列的类型为integer,尽管我希望它是serial。
您可以在下面看到负责创建列的部分迁移代码:
migrationBuilder.CreateTable(
name: "Clients",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
和
modelBuilder.Entity("IdentityServer4.EntityFramework.Entities.Client", b =>
{
b.Property<int>("Id")
.ValueGeneratedOnAdd()
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
基于文档https://www.npgsql.org/efcore/value-generation.html,
在integer 列上调用ValueGeneratedOnAdd() 应该会在数据库中产生serial 类型。
对此有什么想法吗?
【问题讨论】:
标签: entity-framework entity-framework-core asp.net-core-2.0 npgsql