Asp.在种子方法中创建角色失败

本文关键字:创建 角色 失败 子方法 种子 Asp | 更新日期: 2023-09-27 17:50:48

我尝试在seed方法中添加一个新角色,但是当我运行代码时,浏览器继续加载并且没有响应。使用调试器,发现代码在create方法上挂起。

我不知道发生了什么。如有任何帮助,不胜感激。

谢谢!

public class ApplicationDbContextInitializer : DropCreateDatabaseIfModelChanges<ApplicationDbContext> 
{
    protected override void Seed(ApplicationDbContext context)
    {
        var rm = new RoleManager<IdentityRole>(
            new RoleStore<IdentityRole>(new ApplicationDbContext()));
        var idResult = rm.Create(new IdentityRole("Admin"));
        base.Seed(context);
    }
}

全球。asax文件:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        Database.SetInitializer(new ApplicationDbContextInitializer());
        ApplicationDbContext db = new ApplicationDbContext();
        db.Users.FirstOrDefault();
    }
}

在本文之后,播种数据可以进行迁移。但我想找到一个不使用迁移的解决方案,以便每次模型更改时它都会下降并创建一个新的数据库。http://typecastexception.com/post/2013/11/11/extending -认同-账户-和-实施-基础-验证-角色- aspnet - mvc - 5. - aspx

Asp.在种子方法中创建角色失败

尝试更改

var rm = new RoleManager<IdentityRole>(
    new RoleStore<IdentityRole>(new ApplicationDbContext()));

使用传递给Seed()方法的上下文,而不是创建一个新上下文…

var rm = new RoleManager<IdentityRole>(
    new RoleStore<IdentityRole>(context));