实体框架代码优先-配置在另一个文件

本文关键字:配置 另一个 文件 框架 代码 实体 | 更新日期: 2023-09-27 18:09:15

使用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#

实体框架代码优先-配置在另一个文件

您将需要创建一个继承自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());
    }
}

本文将详细介绍如何使用配置类。