如题所示,EF作为微软主推的ORM工具,最新版本已经是7,说明有很多人在使用它做项目。在使用过程中,可能会连接不同的数据库,本文介绍的是连接SqlServer,MySql和SQLite三种,并且可以互相切换。先看Config是如何配置的?如下所示
<?xml version="1.0"?> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> </configSections> <!--SQLServer数据库配置--> <!--<entityFramework> <providers> <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> </providers> </entityFramework>--> <!--MySql数据库配置--> <entityFramework> <providers> <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/> </providers> </entityFramework> <!--SQLite数据库--> <!--<entityFramework> <providers> <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6, Version=1.0.98.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" /> </providers> </entityFramework>--> <connectionStrings> <!--SQLServer数据库--> <add name="dbConnString1" connectionString="" providerName="System.Data.SqlClient" /> <!--MySql数据库--> <add name="dbConnString2" connectionString="" providerName="MySql.Data.MySqlClient"/> <!--SQLite数据库,注:根目录--> <add name="dbConnString3" connectionString="" providerName="System.Data.Sqlite.EF6" /> </connectionStrings> </configuration>
是不是觉得很简单?对,就是这样简单。注意:引用的DLL文件名称,建议从官网上下载。如下图所示
配置好并引用相应的DLL后,还并不能实现数据库的切换,还有一个地方要修改,就是Map文件。如下图所示
如果数据库的名称相同,则可以不必修改。若数据库名称不相同,则需修改this.ToTable这行代码,将后面的这个参数置为空即可
好了,通过上述的改动,即可实现EF同时连接多Db并可互相切换