加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-core-mvc – 无法更新Entity Framework Core中的标识列

发布时间:2020-12-16 07:33:19 所属栏目:asp.Net 来源:网络整理
导读:我在AspNetUsers表中添加了一个单独的标识,名为NumericId,它将与ASP具有的默认值一样提供GUID. 我已将该属性添加为ApplicationUser类的附加属性: public class ApplicationUser : IdentityUser{ [DatabaseGenerated(DatabaseGeneratedOption.Identity)] pub
我在AspNetUsers表中添加了一个单独的标识,名为NumericId,它将与ASP具有的默认值一样提供GUID.

我已将该属性添加为ApplicationUser类的附加属性:

public class ApplicationUser : IdentityUser
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual int NumericId { get; set; }
}

但是,当我尝试注册或更新用户的详细信息(甚至与numericId无关)时,我不断收到错误

SqlException: Cannot update identity column 'NumericId'.

这可以防止任何更改,最终不会更新用户(但它会注册一个,并且在该部分上正确分配了数字ID.但这是无关紧要的)

解决方法

根据此问题的 discussion on GitHub,对于EF Core 2.0,我们需要使用其他帖子中建议的两条线.

for Entity framework core 2.0,The “IsReadOnlyAfterSave” property is
deprecated. Use following:

builder.Property(p => p.Id)
    .UseSqlServerIdentityColumn();

builder.Property(p => p.Id)
    .Metadata.AfterSaveBehavior = PropertySaveBehavior.Ignore;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读