sql >> Databáze >  >> RDS >> Mysql

Entity Framework Vkládání počátečních dat při opětovném sestavení

Vytvoříte vlastní inicializátor databáze a přepíšete Seed metoda

public class MyContextInitializer
    : DropCreateDatabaseIfModelChanges<MyContext>
{
    protected override void Seed(MyContext context)
    {
        context.ContactTypes.Add(new ContactType { DisplayName = "Home" });
        context.ContactTypes.Add(new ContactType { DisplayName = "Mobile" });
        context.ContactTypes.Add(new ContactType { DisplayName = "Office" });
        context.ContactTypes.Add(new ContactType { DisplayName = "Fax" });

        //EF will call SaveChanges itself
    }
}

Poté zaregistrujete tento inicializátor pro váš odvozený kontext MyContext :

Database.SetInitializer<MyContext>(new MyContextInitializer());

Toto je statická metoda Database třídy a měl by být někde volán jednou při spuštění aplikace. Můžete jej také vložit do statického konstruktoru vašeho kontextu, abyste se ujistili, že je inicializátor nastaven před vytvořením první instance kontextu:

static MyContext()
{
    Database.SetInitializer<MyContext>(new MyContextInitializer());
}

Místo základního inicializátoru DropCreateDatabaseIfModelChanges<T> můžete také odvodit z DropCreateDatabaseAlways<T> nebo CreateDatabaseIfNotExists<T> pokud to lépe vyhovuje vašim potřebám.




  1. Vynucení časového limitu dotazu na serveru SQL Server

  2. Jak zálohujete a obnovujete databázi jako kopii na stejném serveru?

  3. Jak opravím tabulku InnoDB?

  4. Vrátit dotaz z funkce?