2011-09-19 6 views
6

什麼是使用Fluent API將表映射到實體的最佳方式,以便它們全部位於單獨的類中,而不是OnModelCreating方法中的內聯?實體框架代碼優先 - 在另一個文件中配置

我目前在做什麼:

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

我想要什麼:

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

你如何做到這一點?我正在使用C#。

回答

16

您將要創建一個繼承自EntityTypeConfiguration類,像這樣一類:

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

然後,你可以加載配置類作爲像這樣的上下文的一部分:

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

This article更詳細地介紹了使用配置類。

相關問題