咱們之前對EF進行配置時是在app.config/web.config下的<entityframework>節點下進行配置的,EF6引進了基於代碼的配置方法。咱們能夠根據喜愛來選擇使用哪一種配置方法,當同時使用代碼和配置文件進行配置時,最終使用的是配置文件中的配置(配置文件比代碼配置的優先級更高)。html
下邊看一個代碼配置的栗子,首先咱們要新建一個集成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
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