170 похожих чатов

Привет всем Подскажите как в EF Core заполнить табличку определенными значениями

на этапе иницилизации?

22 ответов

20 просмотров

Загугли ef core seeder

Danya🔥- Автор вопроса
.
Загугли ef core seeder

https://docs.microsoft.com/ru-ru/ef/core/modeling/data-seeding Я так понимаю это? HasData добавит нужные записи?

Danya🔥
https://docs.microsoft.com/ru-ru/ef/core/modeling/...

Да, есть и другой способ

Danya🔥
https://docs.microsoft.com/ru-ru/ef/core/modeling/...

Создаешь класс AppContextSeed public class AppContextSeed { private readonly AppContext _ctx; #region Constructor public RecruitmentAgencyContextSeed(AppContext ctx) { _ctx = ctx; } #endregion public async Task SeedAsync() { _ctx.Database.EnsureCreated(); #region Permissions if (!_ctx.Permissions.Any()) { Permission[] permissions = new Permission[4] { new Permission{ Name = "Read", CreatedDate = DateTime.Now }, new Permission{ Name = "Write", CreatedDate = DateTime.Now }, new Permission{ Name = "ReadWrite", CreatedDate = DateTime.Now }, new Permission{ Name = "NoAccess", CreatedDate = DateTime.Now } }; foreach (var item in permissions) { _ctx.Permissions.AddAsync(item); } await _ctx.SaveChangesAsync(); } #endregion } } Регистрируешь в стартапе services.AddScoped<AppContextSeed>(); В классе Main вызываешь метод SeedAsync() public class Program { public async static Task Main(string[] args) { IHost host = CreateHostBuilder(args).Build(); using (IServiceScope scope = host.Services.CreateScope()) { try { AppContextSeed seeder = scope.ServiceProvider.GetRequiredService<AppContextSeed>(); await seeder.SeedAsync(); } catch (Exception ex) { ILogger<Program> logger = scope.ServiceProvider.GetRequiredService<ILogger<Program>>(); logger.LogError(ex, "An error occurred while migrating or seeding the database."); throw; } } await host.RunAsync(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); }

.
Создаешь класс AppContextSeed public class AppCon...

Какое-то странное решение, оно же будет применяться после всех миграций? А если модели поменяются, то и код в этом классе тоже придется менять? Зачем какие-то куски миграций выносить в обычные классы, где это все будет инфрастуктурно распологаться?

Иван
Какое-то странное решение, оно же будет применятьс...

Не после всех миграций, а в начале проекта)

.
Не после всех миграций, а в начале проекта)

https://stackoverflow.com/a/38240540/11565032 EnsureCreated is designed for testing or rapid prototyping where you are ok with dropping and re-creating the database each time

Danya🔥
https://docs.microsoft.com/ru-ru/ef/core/modeling/...

делай сразу через миграции, потом легче будет

Danya🔥- Автор вопроса
Danya🔥
Ну это разве в миграции не запишется?

не уверен что сработает итеративно, то есть если создать первую миграцию, в неё записать через hasdata в контексте, потом добавить пару строчек hasdata в контексте то миграция подхватит

Danya🔥- Автор вопроса
Дмитрий 🤍💙🤍
не уверен что сработает итеративно, то есть если с...

Господи как всё сложно у вас дотнетчиков, когда это уже закончится и я вернусь в ламповый С++...

Danya🔥
Господи как всё сложно у вас дотнетчиков, когда эт...

делай миграцию прямым SQL, только тут не особо легко поддерживать версионность миграций

Danya🔥- Автор вопроса
Alex
делай миграцию прямым SQL, только тут не особо лег...

Мне в прицнипе пофиг, главное чтобы работало более-менее

Alex
делай миграцию прямым SQL, только тут не особо лег...

Что за советы блин, чем HasData не устраивает?

Иван
Что за советы блин, чем HasData не устраивает?

ну если не устраивают встроенные фичи EFа

Иван
Что за советы блин, чем HasData не устраивает?

а можно позже добавить начальные данные?

Дмитрий 🤍💙🤍
а можно позже добавить начальные данные?

https://github.com/dotnet-architecture/eShopOnContainers/blob/d0cd2830a864a8b975341b02b93a0887a3908c04/src/Services/Catalog/Catalog.API/Infrastructure/CatalogContextSeed.cs#L22

Danya🔥
Господи как всё сложно у вас дотнетчиков, когда эт...

Я как раз с плюсов на шарп перекотился, потому что прод писать на плюсах бывает очень больно. Особенно если нужно сопровождать чужой код, а люди, который его писали свалили

Danya🔥- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта