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

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

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

1.代码配置步骤

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

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

使用配置有两种方法:

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

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

 

②通过DbConfigurationType属性标头来配置:

注意:如果我们使用MySql数据库的话,属性标头设置为  [DbConfigurationType(typeof(MySqlEFConfiguration))] 

 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>());
    }
}

对应的配置文件:

<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系列教程汇总

posted @ 2018-09-14 10:00  捞月亮的猴子  阅读(2719)  评论(0编辑  收藏  举报