При использовании ConfigurationDbContext из Assembly IdentityServer4.EntityFramework.Storage
И при заполнении базы данных с 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, вызов ValueGeneratedOnAdd()
для столбца integer
должен привести к типу serial
в базе данных.
Есть мысли по этому поводу?