Мое приложение использует EF-дизайн, и все в целом работает очень хорошо.
Через личный файл конфигурации я могу указать, как я хотел бы, чтобы EF обрабатывал изменения в схеме БД, и, таким образом, создавал / создавал соответствующие таблицы по желанию - параметры «никогда», «создавать», «всегда», "onSchemaChanged" и (на будущее) "onSchemaModified".
Это хорошо работает - но я теряюсь в нескольких местах .....
Во время разработки я хотел бы использовать хук, как описано в
« Ошибка использования базы данных с Entity Framework 4 Code First » - но, похоже, это выполняется при КАЖДОМ запуске программы »
public void InitializeDatabase(Context context)
{
context.Database.SqlCommand("ALTER DATABASE Tocrates SET SINGLE_USER WITH ROLLBACK IMMEDIATE");
_initializer.InitializeDatabase(context); // Maybe this does nothing if not needed
context.Database.SqlCommand("ALTER DATABASE Tocrates SET MULTI_USER")
}
Итак ... чтобы ответить на мой вопрос: есть ли переопределение, которое я могу использовать, чтобы определить, будет ли EF НАСТОЯЩЕМУ пытаться изменить базу данных, чтобы я мог установить этот материал SINGLE_USER при необходимости? И если да, могу ли я обнаружить причину EF, которую он делает (см. Мой список вариантов выше), чтобы я мог записать причину изменения? ...
Вся помощь и предложения очень ценятся.