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.

Author: SeyedPooya Soofbaf, 2013-09-06

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());
 50
Author: SeyedPooya Soofbaf,
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 .

 50
Author: Carlos Teixeira,
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);

        /// ...

    }
}
 29
Author: Aaron Sherman,
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".

 4
Author: javovo,
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 });                            
}
 3
Author: user663470,
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).

 1
Author: Martin,
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);
}
 0
Author: xyzWty,
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