Я положил его на конструктор DbContext и работает для меня.
public myDbContext() : base(connectionToDatabase) {
Database.SetInitializer<myDbContext>(null);
}
Решение, приведенное выше, будет работать, но оно не так эффективно, как следующий код:
protected void Application_Start()
{
Database.SetInitializer<myDbContext>(null);
}
В моем случае у меня нет ссылки на мой DAL в пользовательском интерфейсе, и по этой причине я создал конфигурацию EntityFramework и зарегистрировал свою настройку, используя отражение.
protected void Application_Start()
{
EntityFrameworkConfig.RegisterSettings();
}
public static class EntityFrameworkConfig
{
public static void RegisterSettings()
{
// Use the file name to load the assembly into the current
// application domain.
Assembly a = Assembly.Load("MyAssembly");
// Get the type to use.
Type myType = a.GetType("MyType");
// Get the method to call.
MethodInfo myMethod = myType.GetMethod("MySettingsMethod");
// Create an instance.
object obj = Activator.CreateInstance(MyType);
// Execute the method.
myMethod.Invoke(obj, null);
}
}
public void Configurations()
{
//Other settings
Database.SetInitializer<myDbContext>(null);
}
Обновлено
В Entity Framework 6 теперь вы можете использовать NullDatabaseInitializer
Database.SetInitializer(new NullDatabaseInitializer<MyDbContext>());