簡體   English   中英

.NET 5 - 防止更新自動增量列?

[英].NET 5 - Prevent update on auto-increment column?

我正在嘗試在名為 MembershipID 的身份用戶表上創建一個自動增量字段,但我遇到了一些問題。

我將身份用戶子類化並創建了自己的“ApplicationUser”,因此我可以添加其他字段,這一切都很好。

應用程序用戶.cs

public class ApplicationUser : IdentityUser
{
    public int Currency { get; set; }

    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int membershipID { get; set; }
    public string Name { get; set; }


}

(注意 - 我已經嘗試過使用和不使用 [key] 注釋)。

問題該字段在創建 model 時生成並自動遞增。 但是,每次我更新 model 時,比如說名稱,我都會收到一條錯誤消息:

SqlException:無法更新標識列“membershipID”。

這是為什么? 我認為通過說它是數據庫生成的值它不會這樣做嗎? 如何防止它更新列? 我不是在嘗試編輯自動遞增字段,而是在編輯另一列,但不知何故它也嘗試更新導致問題的其他字段。

謝謝大家。

我發現以前有人報告過類似的問題。 如果您使用核心 3.1,請嘗試在 OnModelCreating 方法中添加類似的內容:

modelBuilder.Entity<ApplicationUser>().Property(u => u.membershipID).Metadata.SetAfterSaveBehavior(PropertySaveBehavior.Ignore);

這是類似的問題 - 無法更新 Entity Framework Core 中的標識列 您可以在那里找到早期版本核心的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM