我正在使用带有EF 6的ASP.NET MVC 5的默认模板。它生成身份模型为
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
我希望能够管理和编辑用户列表,所以我搭建了身份模型,并在ApplicationDbContext类中添加了以下行。
public System.Data.Entity.DbSet<QProj.Models.ApplicationUser> ApplicationUsers { get; set; }
我知道这是错的,但我不知道如何解决这个问题。
答案 0 :(得分:2)
如果要管理启用所有默认设置的迁移时为您生成的 AspNetUsers 表,请按以下步骤操作。
Use async controller actions
DbSet不支持异步,除非我们将使用UserManager,否则不应在此处选择/选中Users
。那将是另一个话题。ApplicationUsers
的所有实例重命名为Users
ApplicationUsers
上的IdentityModel
(就我而言,是第37行)我们需要删除上行显示的第37行,因为在您运行enable-migrations
时它将无法建立。由于IdentityDbContext<T>
本身已经包含Users
属性。因此,无需在DbSet
类或为此声明的任何类下添加其他ApplicationDbContext
。顺便说一下,此属性是在脚手架ApplicationUser
时自动添加的。
答案 1 :(得分:1)
这些步骤使我成功搭建了ApplicationUser:
DbSet<MyAppUser> MyAppUsers
,将其删除db.MyAppUsers
的所有出现更改为db.Users
然后你很高兴去,希望这有帮助