無法更新Entity Framework Core中的標識列

asp.net-core-mvc entity-framework-core

我在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。但這是無關緊要的)

熱門答案

根據圍繞這個問題的GitHub討論 ,對於EF Core 2.0,我們需要使用其他帖子中建議的兩條線。

對於Entity framework core 2.0,不推薦使用“IsReadOnlyAfterSave”屬性。使用以下:

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

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


Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因