[英]Add custom unique property to my IdentityUser
我正在使用ASP.NET Core Identity管理我的應用程序用戶。 為了存儲一些其他屬性,我創建了類“ ApplicationUser”,其外觀如下:
public class ApplicationUser : IdentityUser
{
public Guid CustomProperty { get; set; }
}
我現在想要的是,如果CustomProperty
的值已存在於數據庫中,則UserManager<ApplicationUser>
給我一個錯誤。
實現此目標的最佳方法是什么?
我已經找到了這個解決方案: https : //stackoverflow.com/a/39125762/4046585 。 但是,對於這樣一個簡單的要求似乎需要做大量的工作。 我是否可以使用某種屬性來裝飾屬性以實現此目的? 另外,提到的答案將近3年了。 所以我什至不確定它是否可以在ASP.NET Core 2.2中運行
在EF核心中,您可以指定索引應該唯一,這意味着給定屬性的任何兩個實體都不能具有相同的值。
在dbContext OnModelCreating
添加以下代碼並添加遷移。
modelBuilder.Entity<ApplicationUser>()
.HasIndex(b => b.CustomProperty)
.IsUnique();
請參閱https://docs.microsoft.com/zh-cn/ef/core/modeling/indexes
我猜想您希望CustomProperty
有點獨特。 您可以使用DatabaseGenerated
屬性來實現。
像下面這樣裝飾您的財產:
public class ApplicationUser : IdentityUser
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid CustomProperty { get; set; }
}
您可以閱讀更多內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.