Первый запрос на удаление объекта длиннее следующего - PullRequest
0 голосов
/ 30 сентября 2019

Я использую Entity Framework Core в приложении WPF с базой данных SQLite.

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

Существует прагма или другое исправление, которое нужно сделать с базой данных или Entity Framework Core, чтобы улучшить время выполнения первого запроса?

1 Ответ

0 голосов
/ 30 сентября 2019

Это известная проблема, первые запросы выполняются медленно, потому что EF Core настраивает сопоставления таблиц.

Чем больше ваш контекст, тем медленнее будет первый запрос.

НаиболееВажная вещь, которую вы можете здесь сделать, это разделить ваш DbContext на несколько частей (подход DDD).

Быстрый выигрыш - использование плавных перегрузок API, которые принимают строку вместо лямбда-функции, как показано ниже:

modelBuilder.Entity<User>().Property(nameof(User.Name));

Вместо:

modelBuilder.Entity<User>().Property(o => o.Name);

Если у вас есть сотни таблиц и свойств, это должно улучшить ситуацию.

Команда EF Core знает об этом, и мы, вероятно, сделаем этополучить какие-то предварительно скомпилированные или «кэшированные» модели в будущих выпусках, вы можете отслеживать это здесь или здесь .

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