Entity Framework Code First - Конфигурация в другом файле - PullRequest
6 голосов
/ 19 сентября 2011

Каков наилучший способ разделения таблиц на сущности с использованием 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 #.

1 Ответ

17 голосов
/ 19 сентября 2011

Вы захотите создать класс, который наследуется от класса 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());
    }
}

Эта статья более подробно описывает использование классов конфигурации.

...