2012-10-15 12 views
10

Używam EF5 z MVC4. Problem polega na tym, że mam duże dane w moim DB, które już zaimportowałem ze starszego DB. Chcę załadować seed danych po zmianie modelu. Moje pytanie brzmi: jak mogę wysiać duże ilości danych, które są już w moim DB?Kod EF 5 Pierwsza migracja zbiorczego SQL Data Seeding

internal sealed class Configuration : MigrationsConfiguration<VoiceLab.Models.EFDataContext> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = true; 
    } 

    protected override void Seed(VoiceLab.Models.EFDataContext context) 
    { 
    //what to do here to seed thousands or records that are already in db 
    } 

} 

Dzięki,

Odpowiedz

17

Oto jak można zaszczepienia danych zbiorczych po prostu dostarczanie plików .sql w metodzie nasion.

+0

myślę, że to jest droga Bilal mówił o: http://edspencer.me.uk/2012/10/30/seed-data-from-sql -scripts-using-entity-framework-migrations-ef-4-3 / – Rahatur

0

Migracja oparta o kod jest zalecanym podejściem do istniejących baz danych (ręczna aktualizacja baz danych) po zmianie modelu. Możesz to zrobić z PowerShell w oknie Line Comand pakietu. W ten sposób istniejące dane zostaną zachowane.

Jeśli należysz do zespołu programistów używających kontroli źródła, powinieneś użyć migracji czysto automatycznych lub migracji opartych wyłącznie na kodzie. Z uwagi na ograniczenia migracji automatycznych zaleca się stosowanie migracji opartych na kodzie w środowiskach zespołowych.

http://msdn.microsoft.com/en-us/data/jj591621

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

internal sealed class Configuration : MigrationsConfiguration<DataContext> 
{ 
    public Configuration() 
    { 
     AutomaticMigrationsEnabled = false; 

     // if model changes involve data lose 
     AutomaticMigrationDataLossAllowed = true; 

    } 

    protected override void Seed(DataContext context) 
    { 
    //seed only when creating or new database 
    } 

} 
Powiązane problemy