我有一个ASP.NET核心项目。我在SQL Server中使用数据库优先方法,并使用EF Core生成我的模型。
我希望主键自动递增。在第一个条目中默认为我的主键(PimId)为0时,一切似乎都正常。但是,在第二次插入时,主键仍为0。
我的onModelCreate函数
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中遇到保存错误。
有什么建议吗?
发布于 2020-12-15 04:53:26
ValueGeneratedOnAdd()应该可以工作。如果没有,请确保在SQL Server的表中设置了PimId的标识。
entity.Property(e => e.PimId)
.HasColumnName("PIM_Id")
.ValueGeneratedOnAdd();发布于 2020-12-15 02:30:21
您可以将其设置为identity (自动增量),如下所示:
modelBuilder.Entity<ImportPim>().Property(entity => entity.PimId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
https://stackoverflow.com/questions/65294158
复制相似问题