小编Gur*_*yan的帖子

为什么EF核心忽略自动递增列并尝试更新它?

在mssql数据库中,我有一个名为AutoIncrementNumber的自动递增列 ,使用此配置

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
   modelBuilder.Entity<User>(entity =>
   {
      entity.Property(e =>e.AutoIncrementNumber).ValueGeneratedOnAdd();
    }
}
Run Code Online (Sandbox Code Playgroud)

我添加了一个新用户并想要更新此用户

    var user = new User { UserName = "SomeUserName", Code=0};
    var result = await _userManager.CreateAsync(user, "SomePassword");

    //after CreateAsync user.AutoIncrementNumber == 1

    if (result.Succeeded)
    {
      user.Code = 1;
      userManager.UpdateAsync(user);
    }
Run Code Online (Sandbox Code Playgroud)

但是在UpdateAsync期间遇到了一个错误

DbUpdateException:更新条目时发生错误。有关详细信息,请参见内部异常。SqlException:无法更新标识列“ AutoIncrementNumber”

项目在.net core 1.1下运行

SQL模式

CREATE TABLE [dbo].[AspNetUsers](
    [Id] [nvarchar](450) NOT NULL,
    [UserName] [nvarchar](256) NULL,
    [AutoIncrementNumber] [int] IDENTITY(1,1) NOT NULL,
    [ReferralCode] [nvarchar](50) NULL,
    CONSTRAINT [PK_AspNetUsers] PRIMARY KEY CLUSTERED (
        [Id] ASC …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-core asp.net-core

1
推荐指数
1
解决办法
1844
查看次数

标签 统计

asp.net-core ×1

c# ×1

entity-framework-core ×1