EF: Как уменьшить самое первое время инициализации DataContext - PullRequest
3 голосов
/ 19 марта 2011

Я использую автоматически сгенерированную модель данных Entity-Framework для базы данных, содержащей более 100 таблиц.Хотя я использую только 5 таблиц, я выбираю все таблицы для отображения на классы c #.

Каждый раз, когда я запускаю приложение dekstop, которое создает экземпляр DataContext в событии FormLoad, для некоторой внутренней инициализации EF требуется 3-4 секунды.Время запуска сильно зависит от количества автоматически сгенерированных классов.Когда я решил сгенерировать отображение только для 5 таблиц - время запуска резко сократилось.

Интересно, что происходит за кулисами, и могу ли я изменить стандартное поведение, сохраняя все неиспользуемые отображения таблиц в программе?Я не хочу заботиться о том, какие таблицы мне нужно отображать.Я предполагаю, что EF выполняет некоторую работу по отражению, это может быть сделано в стиле отложенной загрузки или что-то в этом роде?

Заранее спасибо!

1 Ответ

3 голосов
/ 19 марта 2011

Я рекомендую прочесть эти две статьи Часть 1 и Часть 2 .Они объясняют, что происходит, когда вы запускаете приложение, и как сократить время запуска, предварительно создав представления для структуры сущностей.В любом случае, включая таблицы, которые вам не нужны, это плохой подход, и ничто не сократит время запуска больше, чем простое удаление их из модели сущности.

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