我正在使用ASP.NET Core Identity管理我的应用程序用户。为了存储一些其他属性,我创建了类“ ApplicationUser”,其外观如下:
public class ApplicationUser : IdentityUser
{
public Guid CustomProperty { get; set; }
}
我现在想要的是,如果数据库中已经存在UserManager<ApplicationUser>
的值,CustomProperty
给我一个错误。
实现此目标的最佳方法是什么?
我已经找到了以下解决方案:https://stackoverflow.com/a/39125762/4046585。但是,对于这样一个简单的要求似乎需要做大量的工作。我是否可以使用某种属性来装饰属性以实现此目的?另外,提到的答案将近3年了。所以我什至不确定它是否可以在ASP.NET Core 2.2中使用
答案 0 :(得分:2)
在EF核心中,您可以指定索引应该是唯一的,这意味着给定属性的两个实体都不能具有相同的值。
在dbContext $('# satu').focus();
中添加以下代码,并添加迁移。
<input ... onfocusout="return validateForm()" autofocus hidden>
请参阅https://docs.microsoft.com/en-us/ef/core/modeling/indexes
答案 1 :(得分:1)
我猜您希望CustomProperty
是独一无二的。您可以使用DatabaseGenerated
属性来实现。
如下所示装饰您的财产:
public class ApplicationUser : IdentityUser
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid CustomProperty { get; set; }
}
您可以阅读更多on that.