2011-09-19 14 views
6

Jaki jest najlepszy sposób rozdzielenia mapowania tabel na podmioty korzystające z Fluent API, tak aby wszystkie znajdowały się w osobnej klasie i nie były wbudowane w metodę OnModelCreating?Najpierw kod jednostki Entity - Konfiguracja w innym pliku

Co robię obecnie:

public class FooContext : DbContext { 
    // ... 
    protected override OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.Entity<Foo>().Property(...); 
     // ... 
    } 
} 

Czego chcę:

public class FooContext : DbContext { 
    // ... 
    protected override OnModelCreating(DbModelBuilder modelBuilder) { 
     modelBuilder.LoadConfiguration(SomeConfigurationBootstrapperClass); 
    } 
} 

Jak można to zrobić? Używam C#.

Odpowiedz

16

Będziemy chcieli, aby utworzyć klasę, która dziedziczy z klasy EntityTypeConfiguration, tak:

public class FooConfiguration : EntityTypeConfiguration<Foo> 
{ 
    public FooConfiguration() 
    { 
     // Configuration goes here... 
    } 
} 

Następnie można załadować klasę konfiguracji jako część kontekście tak:

public class FooContext : DbContext 
{ 
    protected override OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     modelBuilder.Configurations.Add(new FooConfiguration()); 
    } 
} 

This article idzie bardziej szczegółowo na temat korzystania z klas konfiguracji.

Powiązane problemy