Заполнение базы данных некоторыми данными (Пользователи, Счета, и т. Д. c ...) - PullRequest
0 голосов
/ 19 февраля 2020

Я хотел бы заполнить свою базу данных некоторыми данными, чтобы разработчики веб-интерфейса начали работать с моим API. Я не хочу, чтобы эти данные go находились в рабочем состоянии, и поэтому не чувствую, что они попадают в категорию "Заполненные данные". Для меня заполненные данные - это данные, которые поступают в производство и должны быть в базе данных до запуска моего приложения. Например, список стран, et c.

В моем случае я хотел бы добавить некоторых пользователей, некоторые счета-фактуры, связанные с пользователями, некоторые продукты и т. Д. c. И было бы неплохо, если бы это было сделано при развертывании, когда мы находимся в стадии разработки.

Любое предложение будет действительно оценено.

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

В вашем классе запуска вы захотите проверить на основе среды (если она находится в разработке или нет) и вызвать соответствующий метод seed.

Команда для проверки этого.

if (Environment.IsDevelopment())

Для этой задачи я бы создал отдельный проект, в котором я бы собирал только данные. Все зависит от вашей архитектуры.

0 голосов
/ 19 февраля 2020

Я бы создал класс DataInitializer для заполнения всех необходимых данных, если для среды установлено значение «Разработка».

Например, создание пользователя:

    public static class IdentityDataInitializer
{
    private static void SeedUsers(UserManager<ApplicationUser> userManager)
    {
        if (userManager.FindByNameAsync("Admin").Result == null)
        {
            ApplicationUser admin = new ApplicationUser()
            {
                UserName = "Admin",
                Email = "Admin@admin.com",
                RegistrationDate = DateTime.Now
            };

            string password = "Admin1";

            var result = userManager.CreateAsync(admin, password);

            if (result.Result.Succeeded)
            {
                userManager.AddToRoleAsync(admin, "Admin").Wait();
            }
        }
    }
}

Когда все методы будут готовы, просто добавьте это в свой файл Startup.cs:

        public void Configure(
        IApplicationBuilder app,
        IWebHostEnvironment env,
        UserManager<ApplicationUser> userManager,
        RoleManager<IdentityRole> roleManager)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            IdentityDataInitializer.SeedDefaultData(userManager, roleManager);
        }

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