簡體   English   中英

將自定義唯一屬性添加到我的IdentityUser

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

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