.net core下使用DbProviderFactories.GetFactory(""
前言:我们有时候会有一种需求,需要连接很多的数据库,如:mysql,sqlserver,oracle等等,需要把这些数据库里的数据抽取出来加工后,返回给客户端使用。 在.net framework中是可以使用: DbProviderFactories.GetFactory("MySql.Data.MySqlClient");----创建Mysql数据库工厂 DbProviderFactories.GetFactory("System.Data.SqlClient"); ------创建Sqlserver数据库连接工厂 进行数据库连接的,当然还需要一些连接字符串的设置。 ? 但是在.net core中直接使用这种方式会出现异常,如下图:是不是很郁闷??? ? 而在core项目里的写法,本人根据网上大神的一些案例,对写法做了一些变动,代码: if (_providerName != null) { if (_providerName == "System.Data.SqlClient") { _dbType = DBType.SqlServer; _factory = SqlClientFactory.Instance; } else MySql.Data.MySqlClient DBType.MySql; _factory = MySqlClientFactory.Instance; } } 也就是,我们自己手动根据配置的数据(我这里根据配置的变量providerName-数据库客户端程序集名称)区分,直接将Sqlserver的单例工厂(SqlClientFactory.Instance)和MySql的单例工厂(MySqlClientFactory.Instance)放到基类工厂:DbProviderFactory _factory; 通过这样改写就绕过了原来的写法,解决了本文所说的这个问题。 ? 参考大神文章:?.Net Core2.0下使用Dapper遇到的问题? ?,以后有时间对Dapper学习下,对多个数据库的统一链接的类库,好用!!! ? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 滚动的Log4Net日志文件中的自定义文件名?
- .net – 我应该使用ASP:Label标签吗?
- asp.net-mvc – 确保视图存在
- asp.net-mvc – ASP.NET MVC 1.0 – 字典的模型绑定器
- asp.net – 通过Ajax Post – MVC3更新模型更改视图
- asp.net – 新的dotnet核心项目无法恢复
- asp.net-mvc – 程序集使用System.Web.Http 5.1,它比引用的
- ASP.NET 4中仍然需要App_Browsers文件夹吗?
- Application_Start ASP.NET
- 如何从ASP.NET应用程序启动/停止Windows服务 – 安全问题
- 在ASP.NET MVC表单上允许多个按钮的最佳方法是什
- asp.net-mvc – 如何使WebAPI操作只能从我的应用
- asp.net-mvc – 动作过滤器异常
- asp.net – 使用thinktecture IdentityServer v2
- asp.net-mvc-2 – ASP.NET:ActionLink返回相对u
- asp.net-mvc – MVC3:使用ActionMethodSelector
- asp.net – 我需要将.compiled文件复制到生产服务
- 禁用ASP.NET HttpHandler响应缓存
- BreadCrumbs – ASP.NET – VS2008
- asp.net – 如何在回发触发器中添加进度条