[英].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.