Как отделить исходные данные от кода миграции, чтобы уменьшить размер файлов .Designer?C#

Место общения программистов C#
Гость
Как отделить исходные данные от кода миграции, чтобы уменьшить размер файлов .Designer?

Сообщение Гость »

У нас есть большое бизнес-приложение с большим объемом исходных данных в Entity Framework Core 8. DbContext — это отдельная библиотека, которая связана с веб-приложением как пакет nuget. Мы применяем исходные данные в рамках миграции (при обновлении базы данных ef).
Все работает нормально, но каждый раз при новой миграции EF создает .Designer.cs< /code> файл размером 9 МБ. Большая часть этого файла — это начальные данные. Для тестирования я удалил начальные данные из проекта, и файл стал в 20 раз меньше. После 30-40 миграций компиляция занимает гораздо больше времени. Поэтому каждые 4-5 месяцев мы «выравниваем» миграции. Это работает, но должен быть лучший способ.
Мы поддерживаем как определения моделей, так и начальные данные. Есть ли способ уменьшить размер файлов дизайнера?
Я не знаю, будет ли полезно добавить какой-либо код к определению проблемы. Вот пример:

Код: Выделить всё

public partial class MyDbContext : DbContext
{
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
OnModelCreatingPartial(modelBuilder);
...
}
}

public partial class MyDbContext {

partial void OnModelCreatingPartial(ModelBuilder modelBuilder) {
modelBuilder.Entity().HasData(new Location
{ ... }
);
}
}
Фактически, в исходном коде у нас может быть список из 500 элементов с некоторыми данными настройки; но в файле дизайнера все это разбито на отдельные вставки, что делает файл огромным.

Подробнее здесь: https://stackoverflow.com/questions/784 ... the-size-o

Вернуться в «C#»