Jak Mogę wyłączyć migrację w Entity Framework 6.0
Próbuję zignorować" automatyczną " migrację przy użyciu Entity Framework 6.0 rc1. Mój problem polega na tym, że nie chcę tej funkcji teraz i za każdym razem, że moja aplikacja działa widzę wszystkie dzienniki entity próbuje utworzyć wszystkie tabele.
Dzięki.
7 answers
Spróbuj tego:
internal sealed class Configuration : DbMigrationsConfiguration<YourContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = false;
}
}
UPDATE:
Możesz również spróbować tego:Database.SetInitializer<YourContextType>(new CreateDatabaseIfNotExists());
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-08 03:20:33
Możesz umieścić to w sekcji entityFramework aplikacji.config:
<contexts>
<context type="YourNamespace.YourDbContext, YourAssemblyName" disableDatabaseInitialization="true"/>
</contexts>
Ta strona msdn mówi wszystko o Entity Framework Configuration Section .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-07 02:22:34
Przez WWW.config see - https://msdn.microsoft.com/en-us/data/jj556606.aspx#Initializers
Poprzez kod (dziwnie, dużo prostsza odpowiedź)
public class MyDB : DbContext
{
public MyDB()
{
Database.SetInitializer<MyDB>(null);
}
}
Lub w globalnym.asax.cs
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
// ...
Database.SetInitializer<MyDB>(null);
/// ...
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-23 22:34:12
Jeśli znalazłeś to pytanie, mając nadzieję na prostą odpowiedź, aby wyłączyć migracje, ponieważ wpisałeś "Enable-Migrations" i teraz rzeczy nie działają tak, jak oczekiwałeś, jak na przykład nie uruchomiłeś metody zalążkowej, którą zamierzałeś uruchomić, poszukaj w Eksploratorze rozwiązań i usuń folder migracje. To spowoduje, że kod nie będzie patrzył na konfigurację migracji, aby znaleźć kod inicjalizacyjny. Aby odzyskać folder migracje, po prostu uruchom ponownie "Enable-Migrations".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-10 18:14:25
Popełniłem błąd, dzwoniąc do bazy danych.SetInitializer( null); za późno (po zainicjowaniu kontekstu). Najlepszym sposobem na wyłączenie migracji jest wykonanie powyższego wywołania dla wszystkich kontekstów podczas uruchamiania aplikacji. Popieram takie podejście zamiast ustawiania go w aplikacji.config, dzięki czemu mogę użyć mojego kontenera, aby zlokalizować moje konteksty, a następnie skonstruować połączenie.
var migrationsMethod = typeof(System.Data.Entity.Database).GetMethod("SetInitializer");
foreach (var contextType in allContextTypes)
{
migrationsMethod.MakeGenericMethod(contextType).Invoke(null, new object[] { null });
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-30 11:35:29
Wyłączenie automatycznej migracji może być również skonfigurowane podczas wywoływania polecenia enable-migrations
(które tworzy klasę Configuration
), używając parametru EnableAutomaticMigration
o wartości false
:
enable-migrations -EnableAutomaticMigration:$false -ContextTypeName FullyQualifiedContextName
Utworzy klasę Configuration
, która ustawia właściwość AutomaticMigrationsEnabled
na false, tak jak w odpowiedzi powyżej.
Parametr EnableAutomaticMigration
polecenia enable-migrations
jest wymieniony w ten artykuł na stronie samouczka Entity Framework (jednak używają go z true
, co wydaje się być wartość domyślna).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-26 12:47:50
Spróbuj tego, Dodaj tę linię do klasy MyContext, zostanie ona wywołana przed wywołaniem konstruktora MyContext. Spowoduje to zatrzymanie tworzenia bazy danych, a także nie będzie dodawania tabel do połączonej bazy danych. Zasadniczo ta linia wyłącza domyślną strategię inicjalizacji bazy danych, która zasadniczo ma domyślną strategię jako CreateDatabaseIfNotExists.
static MyContext()
{
System.Data.Entity.Database.SetInitializer<MyContext>(null);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-09-27 09:18:48