sql >> Database teknologi >  >> RDS >> Mysql

Entity Framework Indsættelse af indledende data ved genopbygning

Du opretter en brugerdefineret databaseinitialiserer og overskriver Seed metode

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
    }
}

Derefter registrerer du denne initialisering for din afledte kontekst MyContext :

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

Dette er en statisk metode til Database klasse og skal kaldes et sted én gang ved opstart af applikationen. Du kan også sætte den ind i en statisk konstruktør af din kontekst for at sikre, at initialiseringen er indstillet, før du opretter den første kontekstforekomst:

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

I stedet for basisinitialisatoren DropCreateDatabaseIfModelChanges<T> du kan også udlede fra DropCreateDatabaseAlways<T> eller CreateDatabaseIfNotExists<T> hvis det bedre opfylder dine behov.




  1. Datetime NU PHP mysql (+ PDO-variant)

  2. Indstil MySQL-databasens tidszone til GMT

  3. AWS Lambda - MySQL caching

  4. SQL Server-ækvivalent til substring_index-funktion i MySQL