Entity Framework入门教程(18)---EF6中基于代码进行配置方式

EF6中基于代码进行配置方式

  咱们之前对EF进行配置时是在app.config/web.config下的<entityframework>节点下进行配置的,EF6引进了基于代码的配置方法。咱们能够根据喜爱来选择使用哪一种配置方法,当同时使用代码和配置文件进行配置时,最终使用的是配置文件中的配置(配置文件比代码配置的优先级更高)。html

1.代码配置步骤

下边看一个代码配置的栗子,首先咱们要新建一个集成DbConfiguration的类web

public class FE6CodeConfig : DbConfiguration
{
    public FE6CodeConfig()
    {
        //define configuration here
    }
}

使用配置有两种方法:数据库

①修改app.config文件设置codeConfigurationType:app

<entityFramework codeConfigurationType="EF6DBFirstTutorials.FE6CodeConfig, EF6DBFirstTutorials"></entityFramework>

 

②经过DbConfigurationType属性标头来配置:ide

注意:若是咱们使用MySql数据库的话,属性标头设置为  [DbConfigurationType(typeof(MySqlEFConfiguration))] post

 2.几个经常使用的配置项

public class FE6CodeConfig : DbConfiguration
{
    public FE6CodeConfig()
    {
        //设置默认的数据库链接池
        this.SetDefaultConnectionFactory(new System.Data.Entity.Infrastructure.SqlConnectionFactory());
       
        //设置数据库提供者
        this.SetProviderServices("System.Data.SqlClient", System.Data.Entity.SqlServer.SqlProviderServices.Instance);

        //设置数据库初始化器(仅支持codeFirst模式)
        this.SetDatabaseInitializer<SchoolDBEntities>(new CustomDBInitializer<SchoolDBEntities>());
    }
}

对应的配置文件:this

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
   <contexts>
        <context type="EF6DBFirstTutorials.SchoolDBEntities, EF6DBFirstTutorials"  >
            <databaseInitializer type="EF6DBFirstTutorials.CustomDBInitializer , EF6DBFirstTutorials">
            </databaseInitializer>
        </context>
    </contexts>    
</entityFramework>

 

EF系列目录连接:Entity Franmework系列教程汇总spa