#ef-code-first
#ef-code-first
Вопрос:
У меня есть пользовательская реализация системы multi tenant code first, в основном разделяющей схемы SQL для клиентов. Я использую метод ToTable для корректного отображения схемы при первом вызове, но, поскольку я прочитал о кэшируемой модели, изменение схемы при втором вызове для другого клиента не работает. Есть ли в EF 4.1 какие-либо способы отключить кэширование или каждый раз перестраивать модель.. Да, я знаю, что это не очень хорошо сказывается на производительности. Спасибо за любую помощь..
Ответ №1:
Хотя это старый вопрос, но для всех тех, кто сталкивается с этой проблемой и в конечном итоге находит этот вопрос в качестве возможного решения. Вот и все…
Изначально кэширование можно было отключить, установив для свойства «CacheForContextType» ModelBuilder значение «false» в методе OnModelCreating. Этот метод определен в DbContext как виртуальный и должен быть переопределен. Но в EF 4.1 это свойство было удалено, поскольку создание модели — дорогостоящий процесс, и команда Microsoft хотела продвинуть лучший шаблон. Проверьте эту ссылку
Ответ №2:
Похоже, что команда Build () в ModelBuilder — это то, что вы ищете.
modelBuilder.Build().Compile().CreateObjectContext...