首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET核心DB-first实体框架核心无法自动增加主键

ASP.NET核心DB-first实体框架核心无法自动增加主键
EN

Stack Overflow用户
提问于 2020-12-15 02:04:53
回答 2查看 219关注 0票数 2

我有一个ASP.NET核心项目。我在SQL Server中使用数据库优先方法,并使用EF Core生成我的模型。

我希望主键自动递增。在第一个条目中默认为我的主键(PimId)为0时,一切似乎都正常。但是,在第二次插入时,主键仍为0。

我的onModelCreate函数

代码语言:javascript
复制
modelBuilder.Entity<ImportPim>(entity =>
        {
            entity.HasKey(e => e.PimId);
            entity.ToTable("Import_PIM");

            entity.Property(e => e.PimId)
                .HasColumnName("PIM_Id")
                .ValueGeneratedNever();

            entity.Property(e => e.CliId).HasColumnName("CLI_Id");

            entity.Property(e => e.PimAccountNumber)
                .HasColumnName("PIM_AccountNumber")
                .HasMaxLength(50)
                .IsUnicode(false);

这是由EF核心生成的,我尝试将ValueGeneratedNever()更改为ValueGeneratedOnAdd(),但在SQL Server中遇到保存错误。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2020-12-15 04:53:26

ValueGeneratedOnAdd()应该可以工作。如果没有,请确保在SQL Server的表中设置了PimId的标识。

代码语言:javascript
复制
    entity.Property(e => e.PimId)
        .HasColumnName("PIM_Id")
        .ValueGeneratedOnAdd();
票数 1
EN

Stack Overflow用户

发布于 2020-12-15 02:30:21

您可以将其设置为identity (自动增量),如下所示:

代码语言:javascript
复制
modelBuilder.Entity<ImportPim>().Property(entity => entity.PimId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65294158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档