2013-10-28 4 views
0

Мы используем EF5.0 в нашем проекте, и мы поставляем имя Db схемы, используя следующий код в OnModelCreating случаеКак изменить DbSchema для Entity Framework во время выполнения?

string schemaName = DbSchema; 
modelBuilder.Configurations.Add(new TableMap(schemaName)); 

Но наша проблема в том, что OnModelCreating событие вызывается только один раз (даже если я создаю контекстный объект), и нам нужно изменить имя схемы Db для разных баз данных, которые мы обрабатываем в цикле.

Я считаю, что EF 6,0 имеет метод, как HasDefaultSchema но я не могу найти способ для EF5.0

Есть ли способ для достижения этой цели?

ответ

0

Самый чистый способ, вероятно, использовать ctor DbContextoverload that takes model [1]. Таким образом, вы можете создать две разные конфигурации (хотя и разные только в схеме) и переключать их по мере необходимости.

Сама модель представлена ​​DbModel class и создано DbModelBuilder class. Это почти то же самое, что и в методе OnModelCreating. Вы можете легко параметризовать это.

[1] Предположим, вы хотите использовать один контекст. Если нет, вы бы пошли на разные классы контекста.

Смежные вопросы