Это известная проблема, первые запросы выполняются медленно, потому что EF Core настраивает сопоставления таблиц.
Чем больше ваш контекст, тем медленнее будет первый запрос.
НаиболееВажная вещь, которую вы можете здесь сделать, это разделить ваш DbContext на несколько частей (подход DDD).
Быстрый выигрыш - использование плавных перегрузок API, которые принимают строку вместо лямбда-функции, как показано ниже:
modelBuilder.Entity<User>().Property(nameof(User.Name));
Вместо:
modelBuilder.Entity<User>().Property(o => o.Name);
Если у вас есть сотни таблиц и свойств, это должно улучшить ситуацию.
Команда EF Core знает об этом, и мы, вероятно, сделаем этополучить какие-то предварительно скомпилированные или «кэшированные» модели в будущих выпусках, вы можете отслеживать это здесь или здесь .