EntityFrameWork连接多Db配置

时间:2023-03-08 15:33:14
EntityFrameWork连接多Db配置

  如题所示,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文件名称,建议从官网上下载。如下图所示

EntityFrameWork连接多Db配置

EntityFrameWork连接多Db配置

  配置好并引用相应的DLL后,还并不能实现数据库的切换,还有一个地方要修改,就是Map文件。如下图所示

EntityFrameWork连接多Db配置

  如果数据库的名称相同,则可以不必修改。若数据库名称不相同,则需修改this.ToTable这行代码,将后面的这个参数置为空即可

  好了,通过上述的改动,即可实现EF同时连接多Db并可互相切换