Обновление базы данных ASP.NET MVC 5 - PullRequest
0 голосов
/ 01 мая 2018

Я инициализировал данные о пользователях и ролях своего веб-сайта в файле IdentityConfig.cs, и когда я добавил новую модель, а не сопоставил ее с базой данных с помощью команды add-migration-update-update и update-database, я получил пустую базу данных:

public class ApplicationDbInitializer : DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
    protected override void Seed(ApplicationDbContext context)
    {
        InitializeIdentityForEF(context);
        base.Seed(context);
    }

    // Create User=aadmin2018@mail.com with Admin2018@mail.com in the Admin role
    public static void InitializeIdentityForEF(ApplicationDbContext db)
    {
        var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
        var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
        const string name = "admin2018@mail.com";
        const string password = "Admin2018@mail.com";
        const string roleName = "Admin";

        // Create role Admin if it does not exist
        var role = roleManager.FindByName(roleName);

        if (role == null)
        {
            role = new IdentityRole(roleName);
            var roleresult = roleManager.Create(role);
        }

        var user = userManager.FindByName(name);

        if (user == null)
        {
            user = new ApplicationUser
            {
                UserName = name,
                Email = name,
                FirstName = "Admin",
                LastName = "Admin",
                DateOfBirth = new DateTime(2015, 1, 1),
                Address = new Address
                {
                    AddressLine1 = "1 Admin Street",
                    Town = "Town",
                    County = "County",
                    Postcode = "PostCode"
                }
            };

            var result = userManager.Create(user, password);
            result = userManager.SetLockoutEnabled(user.Id, false);
        }

        // Add user admin to Role Admin if not already added
        var rolesForUser = userManager.GetRoles(user.Id);

        if (!rolesForUser.Contains(role.Name))
        {
            var result = userManager.AddToRole(user.Id, role.Name);
        }

        // Create users role
        const string userRoleName = "Users";
        role = roleManager.FindByName(userRoleName);

        if (role == null)
        {
            role = new IdentityRole(userRoleName);
            var roleresult = roleManager.Create(role);
        }
    }
}

Что мне изменить в коде, чтобы эти данные вернулись в базу данных?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...