sobota, 7 kwietnia 2012

Entity Framework - strategie inicjalizacji

Entity Framework posiada w sobie mechanizm inicjalizacji - w jaki sposób zostanie obsłużona baza danych podczas tworzenia Contextu do niej.

Do dyspozycji z pudełka mamy cztery strategie:
  • CreateDatabaseIfNotExists - tworzy bazę danych jeżeli jeszcze nie została stworzona
  • DropCreateDatabaseAlways - przed stworzeniem Contextu usuwa i tworzy bazę na nowo
  • DropCreateDatabaseIfModelChanges - usuwa i tworzy bazę na nowo w  przypadku zmiany w modelu (np. dodanie kolumny)
  • MigrateDatabaseToLatestVersion - używając Code Migrations (pisałem o tym we wcześniejszych postach) uaktualnia bazę danych do najnowszej migracji
 Wykorzystanie wygląda następująco:

Code:
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<DbContext>());

Gdzie umieścić powyższą linijkę?
Powinna być ona umieszczona przed pierwszym utworzeniem DbContext-u w naszej aplikacji.
Przykładowo dla aplikacji ASP.NET będzie to Application_Start() umieszczone w Global.ascx.cs

Możemy także stworzyć własną inicjalizację, poprzez zaimplementowanie interfejsu IDatabaseInitializer


Code:
    public class MyInitializationStrategy : IDatabaseInitializer<MySampleContext>
    {
        public void InitializeDatabase(MySampleContext context)
        {
            //My initialization code
        }
    }

Brak komentarzy:

Prześlij komentarz