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;
}
}
如果您使用的是自动映射器,则可能需要在 Global.asax.cs 文件中对其进行配置。我只是使用以下行来做到这一点:
var autoMapperConfig = new AutoMapperConfig(Assembly.GetExecutingAssembly());
autoMapperConfig.Execute();
要设置"AutoMapperConfig",您可以使用此处的代码
您的迁移配置应如下所示:
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
您可能还需要在最后保存更改。
context.SaveChanges();