Entity Framework автоматически кеширует модель ModelBuilder? - PullRequest
11 голосов
/ 31 августа 2010

Я занимаюсь разработкой приложения ASP MVC с использованием Entity Framework.Я думал о написании кода для кэширования объекта, возвращенного ModelBuilder (как рекомендуется несколькими источниками), но потом я наткнулся на это в блоге Скотта Гу:

"Метод OnModelCreating выше будет вызван в первый разнаш класс NerdDinners используется в работающем приложении, и ему в качестве аргумента передается объект «ModelBuilder». Объект ModelBuilder может использоваться для настройки правил отображения постоянства базы данных наших объектов модели. Мы рассмотрим некоторые примеры того, какчтобы сделать это ниже.

"EF вызывает метод« OnModelCreating »только один раз в работающем приложении - , а затем автоматически кэширует результаты ModelBuilder .Это позволяет избежать снижения производительности при создании модели каждый раз, когда создается экземпляр класса NerdDinners, и означает, что вам не нужно писать какую-либо специальную логику кэширования для достижения высокой производительности в ваших приложениях. "

Означает ли это, что EFавтоматически кэширует объект ModelBuilder, и мне не нужно писать код, чтобы сделать это, или это то, что делается, только если переопределен метод OnModelCreating, или ... ??

1 Ответ

14 голосов
/ 31 августа 2010

Из блога Entity Framework об улучшениях производительности в EF 4

Кеширование модели

Существует определенная стоимость, связанная с обнаружением модели, обработкой аннотаций данныхи применение быстрой конфигурации API.Чтобы избежать таких затрат каждый раз, когда создается экземпляр производного DbContext, модель кэшируется во время первой инициализации.Затем кэшированная модель используется повторно каждый раз, когда один и тот же производный контекст создается в одном и том же домене приложений.Кэширование модели можно отключить, установив для свойства CacheForContextType ModelBuilder значение «false» в методе OnModelCreating.

Таким образом, для Entity Framework 4.0

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