繁体   English   中英

Entity Framework Core:无法为表中的标识列插入显式值

[英]Entity Framework Core: Cannot insert explicit value for identity column in table

我正在使用 Entity Framework Core,并且无法为表中的标识列插入显式值

数据库上下文:

  modelBuilder.Entity<TbUser>(entity =>
            {
                entity.Property(e => e.Jid)
                    .HasColumnName("JID")
                    .ValueGeneratedOnAdd();
}

用户:

        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Jid { get; set; }

在您的 EF 模型代码中,您将Jid列定义为[DatabaseGenerated(DatabaseGeneratedOption.Identity)]

这告诉实体框架数据库将为该字段生成一个值 从逻辑上讲,您不应在代码中设置该值。

如果要手动设置此字段中的值,则需要删除上面的DatabaseGenerated装饰器。

确保IDENTITY_INSERT已关闭。 这样,每个插入的标识都需要明确提供。

SET IDENTITY_INSERT [ [ database_name . ] schema_name . ] table_name { ON | OFF } 

有关 Identity_insert 的更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM