Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?
Здравствуйте, Vladek, Вы писали:
V>Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?
см. Database.SetInitializer(...) и context.Database.Initialize(...)
Здравствуйте, Vladek, Вы писали:
V>Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?
Кроме миграций и прочего, пару секунд может занимать коннект к базе (а в следующие разы он будет браться из пула)
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам
А вот в первых версиях EF, которые Database First, была возможность генерировать некие вьюхи, которые иначе генерировались в рантайме.
Как с этим теперь?
Здравствуйте, Arsen.Shnurkov, Вы писали:
V>> Как сразу запихнуть коннект в пул?
AS>законнекться заранее. Например версию базы считай и сравни с требуемой для работы
Что за версия? Версия сервера бд или миграции? Миграции в любом случае во время работы приложения не происходят, только во время деплоя. Можно пример кода?
Здравствуйте, Vladek, Вы писали:
V>Что за версия? Версия сервера бд или миграции? Миграции в любом случае во время работы приложения не происходят, только во время деплоя. Можно пример кода?
Но происходит проверка не изменилась ли схема, если это указано.
V>Что за версия? Версия сервера бд или миграции? Миграции в любом случае во время работы приложения не происходят, только во время деплоя. Можно пример кода?
Если включены автоматические миграции — они будут проверять схему при каждом подключении
Шурыгин Сергей
"Не следует преумножать сущности сверх необходимости" (с) Оккам
Здравствуйте, Vladek, Вы писали:
V>Первое обращение к EF занимает довольно много времени. Есть ли возможность искусственно заставить EF сделать всё, что он там делает при старте, чтобы приложение не тратило на это время при первом актуальном запросе?
У меня есть база данных и я к ней сгенерировал контекст CodeFirst. Всего каких-то пару сотен классов. Инициализировалась 4-5 минут.
Оптимизировал модель неделю всякими ухищрениями с Fluent Api и кэшированием модели (EF Power Tools etc). Больше ничего оптимизировать не удалось. Сократил до 30 секунд и на этом все. Выкинул эту срань на помойку.