无法更新标识列“ PartyID”

问题描述

我将项目.net core sdk 2.2升级到.net core sdk 3.1。我的项目与.net core sdk 2.2配合良好。方类存在于我的项目中,当我尝试更新方名称时,出现“无法更新标识列“方ID””。 PartyID是主键,在sql表中以1为增量。你有主意吗?@H_404_1@

public class Parties
{

    public Parties()
    {
    }

    [Key,DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int PartyID { get; set; }
}

此外,我在网络上研究了此错误,并添加了以下代码。@H_404_1@

protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        var partiesBuilder = modelBuilder.Entity<Parties>();
        partiesBuilder.Property(p => p.PartyID).Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Ignore);
        partiesBuilder.Property(p => p.PartyID).UsesqlServerIdentityColumn();
        partiesBuilder.Property(p => p.PartyID).ValueGeneratedOnAdd();
    }

但是我收到此错误: “ system.invalidOperationException:实体类型为'Parties'的属性'PartyID'必须在保存后标记为只读,因为它是键的一部分。一旦保存了实体,键属性始终为只读第一次。'“。@H_404_1@

我也使用了这个包: EntityFramework版本6.4.4,Microsoft.EntityFrameworkCore版本3.1.6 @H_404_1@

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)