即使使用 .net core 指定了符号序列,Postgresql 主键也不会自动递增

Postgresql primary key not auto incrementing even when notation serial specified using .net core

Postgresql 主键即使指定了符号序列也不会自动递增 这是我的 table 创建脚本

CREATE TABLE public."Medication" (
    "Id" serial NOT NULL,
    "ResidentId" int4 NOT NULL,
    "PharmacyId" int4 NULL,
    "PhysicianId" int4 NULL,
    "ReleasedQty" float8 NOT NULL DEFAULT '0'::double precision,
    "PRNEffectiveTime" int4 NULL,
    "IsSTO" bool NOT NULL DEFAULT false,
    "IsPendingOrder" bool NOT NULL DEFAULT false,
    "IsPsychotropic" bool NOT NULL DEFAULT false,
    "IsINRRequired" bool NOT NULL DEFAULT false,
    "eSignature" varchar NULL,
    "eSignatureDate" timestamp NULL,
    "PhysicianId_X" int4 NULL,
    "IsWitnessSigReq" bool NULL,
    "IsInjection" bool NULL,
    "AdministerByRole" varchar NULL,
    "AdministerByUser" varchar NULL,
    "AlfId" int4 NOT NULL,
    CONSTRAINT "Medication_pkey" PRIMARY KEY ("Id", "AlfId")
)
PARTITION BY RANGE ("AlfId");

Id 的值始终保持为零

我的查询正在插入显式值 0 这发生在 .net 核心中,Medication 对象包含 Id 零。 在我的 class 中,我将 Id 指定为 Identity 列然后它修复了

Table("Medication")]
    public partial class Medication
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }
    

我没有添加 [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 这就是它发生的原因