首页 > 解决方案 > 异常无法为表中的标识列插入显式值

问题描述

使用FluentAPI我是autoincreamenting我的表的主键。

FluentAPI 配置如下:

mb.ToTable("StationeryItems");
builder.HasKey(c => c.StationeryItemId);

我得到的例外:

当 IDENTITY_INSERT 设置为 OFF 时,无法在表“StationeryItems”中插入标识列的显式值。

标签: c#.netentity-frameworkef-fluent-api

解决方案


尝试以下方法之一,也许它们可以解决您的问题。DatabaseGeneratedOption

[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int StationeryItemId { get; set; }

或者:

builder.Entity<StationeryItems>().Property(t => t.StationeryItemId) 
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

在 EF Core 中:

builder.Entity<StationeryItems>().Property(b => b.StationeryItemId).ValueGeneratedOnAdd();

推荐阅读