EF Core Mapping EntityTypeConfiguration

后端 未结 15 1255
花落未央
花落未央 2020-11-30 18:26

In EF6 we usually able to use this way to configure the Entity.

public class AccountMap : EntityTypeConfiguration
{
    public AccountMap()
           


        
15条回答
  •  孤城傲影
    2020-11-30 19:10

    I have a project that allows you to configure entities outside of the DbContext.OnModelCreating You configure each entity in a seperate class which inherits from StaticDotNet.EntityFrameworkCore.ModelConfiguration.EntityTypeConfiguration

    First you need to create a class which inherits from StaticDotNet.EntityFrameworkCore.ModelConfiguration.EntityTypeConfiguration where TEntity is the class you want to configure.

    using StaticDotNet.EntityFrameworkCore.ModelConfiguration;
    using Microsoft.EntityFrameworkCore.Metadata.Builders;
    
    public class ExampleEntityConfiguration
        : EntityTypeConfiguration
    {
        public override void Configure( EntityTypeBuilder builder )
        {
            //Add configuration just like you do in DbContext.OnModelCreating
        }
    }
    

    Then in your Startup class you just need to tell Entity Framework where to find all of your configuration classes when you are configuring your DbContext.

    using StaticDotNet.EntityFrameworkCore.ModelConfiguration;
    
    public void ConfigureServices(IServiceCollection services)
    {
        Assembly[] assemblies = new Assembly[]
        {
            // Add your assembiles here.
        };
    
        services.AddDbContext( x => x
            .AddEntityTypeConfigurations( assemblies )
        );
    }
    

    There is also an option for adding type configurations using a provider. The repo has complete documentation on how to use it.

    https://github.com/john-t-white/StaticDotNet.EntityFrameworkCore.ModelConfiguration

提交回复
热议问题