我无法在用户表上建立身份,并且无法在身份表中修改用户表
我创建了模型,然后生成了控件和视图。
然后我尝试通过添加新的脚手架项目来创建新的标识,但是我无法使用已经存在的用户表
我还尝试创建一个新项目,首先创建Identity,然后通过添加一些列来修改Identity用户表,然后在相同的上下文中创建我的表,但是我找不到用于修改它的用户模型,并且创建与其他实体的关系。
[Table("User")]
public class User
{
[Key]
public int Id { get; set; }
[Required]
[Display(Name = "Name")]
[DataType(DataType.Text)]
public string Name { get; set; }
[Required]
[Display(Name = "Phone Number")]
[DataType(DataType.PhoneNumber)]
public string Phone { get; set; }
[Required]
[Display(Name = "Email Address")]
[DataType(DataType.EmailAddress)]
public string Email { get; set; }
[Required]
[Display(Name = "Password")]
[DataType(DataType.Password)]
[StringLength(20, MinimumLength = 6)]
public string Password { get; set; }
[Required]
[Display(Name = "Confirm Password")]
[DataType(DataType.Password)]
[Compare("Password", ErrorMessage = "Confirm password doesn't match, Type again !")]
[NotMapped]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Gender")]
[DataType(DataType.Text)]
public string Gender { get; set; }
[Required]
[Display(Name = "Birth Date")]
[DataType(DataType.Date)]
[CustomDate(ErrorMessage = "Use Correct Birthdate")]
public DateTime BirthDate { get; set; }
public bool Eanble { get; set; }
public string Permissions { get; set; }
[DataType(DataType.DateTime)]
public DateTime CreateAt { get; set; }
[DataType(DataType.DateTime)]
public DateTime UpdateAt { get; set; }
[InverseProperty("Owner")]
public List<Article> Articles { get; set; }
[InverseProperty("Owner")]
public List<Consultation> Consultations { get; set; }
[InverseProperty("Owner")]
public List<ConsultationComment> ConsultationComments { get; set; }
}
答案 0 :(得分:0)
您使用了错误的方法。 为了向用户添加自己的自定义属性,您应该创建一个派生自Microsoft.AspNetCore.Identity.IdentityUser的类。在这里,您可以添加自己的自定义属性,这些属性将添加到表中。这是您的操作方法:
// using Microsoft.AspNetCore.Identity; is needed
public class ApplicationUser : IdentityUser
{
public int Age { get; set; }
}
现在,您应该创建一个从IdentityDbContext派生的类:
public class AppIdentityDbContext : IdentityDbContext<ApplicationUser>
{
public AppIdentityDbContext(DbContextOptions<AppIdentityDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}
这基本上是一个具有2个DbSet的DbContext,Identity将使用它。
然后转到您的Startup.cs并在ConfigureServices中添加以下行:
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<AppIdentityDbContext>();
现在,您可以构建项目并查看应用于数据库的更改。您不能删除身份属性,但可以添加自己的属性。