Asp.net MVC 种子方法不会在发布时运行

本文关键字:布时 运行 net MVC 种子 子方法 Asp | 更新日期: 2023-09-27 17:55:54

当我第一次发布我的项目时,种子方法运行并将数据插入表中。但是当我用更多数据更改种子方法时,种子方法不起作用。

并且:我设置了错误的"自动迁移启用"和"自动迁移数据丢失允许"参数?

我的配置文件如下:

 internal sealed class Configuration : DbMigrationsConfiguration<ModulericaV1.Models.ApplicationDbContext>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
            AutomaticMigrationDataLossAllowed = true;
        }
        protected override void Seed(ApplicationDbContext context)
        {
            this.AddUserAndRoles();
        }

        bool AddUserAndRoles()
        {
            bool success = false;
            var idManager = new IdentityManager();
            success = idManager.CreateRole("Admin");
            if (!success == true) return success;
            success = idManager.CreateRole("HR_Admin");
            if (!success == true) return success;
            success = idManager.CreateRole("HR_Visitor");
            if (!success) return success;

            var newUser = new ApplicationUser()
            {
                UserName = "pascal",
                FirstName = "umki",
                LastName = "umkiii",
                Email = "asdfads@asdas.com"
            };
            success = idManager.CreateUser(newUser, "Password1");
            if (!success) return success;
            success = idManager.AddUserToRole(newUser.Id, "Admin");
            if (!success) return success;
            return success;
        }
    }

Asp.net MVC 种子方法不会在发布时运行

如果您使用的是自动映射器,则可能需要在 Global.asax.cs 文件中对其进行配置。我只是使用以下行来做到这一点:

var autoMapperConfig = new AutoMapperConfig(Assembly.GetExecutingAssembly());
autoMapperConfig.Execute();

要设置"AutoMapperConfig",您可以使用此处的代码

您的迁移配置应如下所示:

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        AutomaticMigrationDataLossAllowed = true;
    }

您可能还需要在最后保存更改。

    context.SaveChanges();