Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Entity Framework wstawianie danych początkowych podczas odbudowy

Tworzysz niestandardowy inicjator bazy danych i zastępujesz 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
    }
}

Następnie zarejestrujesz ten inicjator dla swojego kontekstu pochodnego MyContext :

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

To jest statyczna metoda Database class i powinna być wywoływana gdzieś podczas uruchamiania aplikacji. Możesz również umieścić go w statycznym konstruktorze swojego kontekstu, aby upewnić się, że inicjator jest ustawiony przed utworzeniem pierwszej instancji kontekstu:

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

Zamiast podstawowego inicjatora DropCreateDatabaseIfModelChanges<T> możesz również wyprowadzić z DropCreateDatabaseAlways<T> lub CreateDatabaseIfNotExists<T> jeśli to lepiej odpowiada Twoim potrzebom.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zainstalować klejnot MySQL na Mac OS X?

  2. Jak mogę obsłużyć zapytania dotyczące nakładania się wielokątów MySQL?

  3. Jak przechowywać numery telefonów w bazach danych MySQL?

  4. Jak mogę postawić dwa warunki w posiadaniu klauzuli?

  5. pobierasz liczbę z tej samej kolumny w tabeli mysql?