在.netstandard2.0时 System.Data.Common 这个包里并没有加入DbProviderFactories

DbProviderFactories类在.netframework中是非常重要的存在,依靠他可以适配各种数据库客户端(sqlserver、mysql、sqllite等)创建数据库连接。

现在可以像.netframework中一样愉快的使用

 DbProviderFactory factory = DbProviderFactories.GetFactory("MySql.Data.MySqlClient");

但是如果直接这么写代码的话就会报错

System.ArgumentException:“The specified invariant name 'MySql.Data.MySqlClient' wasn't found in the list of registered .NET Data Providers.”

NET Core的数据库连接与.NET Framework略有不同。在.NET Framework中,程序可用的数据库驱动程序在整个系统范围内(通过machine.config)自动可用。也就是 mysql的.net连接驱动(mysql-connector-net-x.x.x.x.msi)就可以了。Program.cs或中Startup.cs。使用 以下DbProviderFactories.RegisterFactory方法完成注册:

SQL服务器

using System.Data.SqlClient;
DbProviderFactories.RegisterFactory("System.Data.SqlClient", SqlClientFactory.Instance);

MySQL的

using MySql.Data.MySqlClient;
DbProviderFactories.RegisterFactory("MySql.Data.MySqlClient", MySqlClientFactory.Instance);

PostgreSQL的

using Npgsql;
DbProviderFactories.RegisterFactory("Npgsql", NpgsqlFactory.Instance);

SQLite的

using Microsoft.Data.Sqlite;
DbProviderFactories.RegisterFactory("Microsoft.Data.Sqlite", SqliteFactory.Instance);

这些数据库访问工厂的单例都是继承DbProviderFactory,需要通过nuget安装对应的数据库客户端包例如 Mysql.Data

在这之后就是在需要的地方使用

DbProviderFactory  factory = DbProviderFactories.GetFactory("MySql.Data.MySqlClient");DbConnection conn = factory.CreateConnection();

升级

在上述方法过程中是使用的直接注册工厂单例完成的;

public static void RegisterFactory(string providerInvariantName, string factoryTypeAssemblyQualifiedName);

例如mysql

  DbProviderFactories.RegisterFactory(providerName, "MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data");

前面是工厂的类型名称,后面是类所在的应用程序集,即可达到同样的效果;

asp.netcore3.0 使用 DbProviderFactories 连接数据库相关推荐

  1. [译]使用DOT语言和GraphvizOnline来可视化你的ASP.NETCore3.0终结点01

    这是系列文章中的第一篇:使用GraphvizOnline可视化ASP.NETCore3.0终结点.. 第1部分-使用DOT语言来可视化你的ASP.NETCore3.0终结点(本文) 第2部分-向ASP ...

  2. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...

    通过前几个教程的学习,对webapi的编写基本上就可以入门了,可以做项目了,今天我们再给接口加个参数签名认证,之前的接口相当于赤果果的暴露在了网络上,只要知道接口地址.接口调用方式和传参就可以畅所欲为 ...

  3. Asp.NetCore3.1开源项目升级为.Net6.0

    概述 自从.Net6.0出来后,一直想之前开发的项目升级.Net6.0,有时想想毕竟中间还跨了个5.0版本,升级起来不知道坑大不大,最近抽时间对升级的方案做了些研究,然后将代码升级为.Net6.0.本 ...

  4. ASP.NET2.0轻松搞定统计图表【月儿原创】

    ASP.NET2.0轻松搞定统计图表 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/           时间:2007.3.27 本文讲述如何绘制条形图,折线图, ...

  5. ASP.NET2.0轻松搞定统计图表

    本文讲述如何绘制条形图,折线图,柱形图,面积图等常见图形. 效果图: 手把手教程: 原理:OWC是Office   Web   Compent的缩写,即Microsoft的Office   Web组件 ...

  6. ASP.NET2.0通用数据访问类

    .NET框架自带的数据提供器包括SQLServer(System.Data.SqlClient).Oracle    (System.Data.Oracleclient).OLEDB(System.D ...

  7. VS2005 ASP.NET2.0安装项目的制作(包括数据库创建、站点创建、IIS属性修改、Web.Config文件修改)

    站点: 如果新建默认的Web安装项目,那它将创建的默认网站下的一个虚拟应用程序目录而不是一个新的站点.故我们只有创建新的安装项目,而不是Web安装项目.然后通过安装类进行自定义操作,创建新站如下图: ...

  8. ASP.NET2.0里的web.config配置接口API(转)

    ASP.NET2.0里的配置接口API ASP.NET2.0里的配置API接口函数允许我们读/写配置文件----包括对web.config和machine.config的读写.您可以读写您自己应用程序 ...

  9. [转]ASP.NET1.0升级ASP.NET2.0问题总结

    来自:http://www.enet.com.cn/article/2006/0310/A20060310510518.shtml 1.Global.asax文件的处理形式不一样,转化后将出现错误 在 ...

最新文章

  1. Windows下安装PHP开发环境
  2. DNS术语,组件和概念介绍
  3. spring cloud 总结
  4. java删除javaee_JavaEE--集合--删除List中指定元素
  5. 使用 Advanced Installer 打包 一键安装Web应用程序
  6. 软件工程概论第十三周学习进度
  7. 评分9.7! 这本Python神作,火爆编程圈!网友:太香!
  8. 操作系统-3.假设某多道程序设计系统中有供用户使用的内存100KB,打印机1台。系统采用可变分区方式管理内存:对打印机采用静态分配,并假设输入输出操作的时间忽略不计;采用最短剩余时间优先的进程调度算法
  9. linux修改dns地址的三种方法
  10. 掌上飞车-艳云脚本云控系统
  11. 中国工程师如何获 Google 的工作机会?
  12. 微短剧的春天里,抖音、快手各有所思
  13. docker 进入,退出容器命令
  14. unbuntu下 sudo apt-get update 更新软件源列表
  15. 复合字面量(compound literals)详解
  16. 迷失轨迹官网android,迷失轨迹lost tracks
  17. 小学老师工资多少一个月_你知道小学老师一个月工资多少吗?揭开真实收入,让你想不到...
  18. 算法基础(Java)--贪心算法
  19. xlsx表格怎么做汇总统计_excel不同表格中的数据该怎么汇总到一个表格?
  20. 华科大考研计算机系834大纲之计算机网络(五)

热门文章

  1. Oracle session连接数和inactive的问题记录【转】
  2. apache2 配置php,Windows配置PHP5与Apache2
  3. java中和char功能相反的是_JAVA基础语法
  4. xp删除管理员账户_在Windows XP中从登录屏幕删除用户帐户
  5. 在MVC项目中使用Ninject
  6. 移动工具V和选区工具M
  7. 使用 HP 3PAR Peer Persistence 实现 vSphere Metro Storage Cluster (vMSC)
  8. Ecshop:后台添加新功能栏目以及管理权限设置
  9. Android实现通用的ActivityGroup(效果类似Android微博客户端主界面),...
  10. Win11手机应用大改!全新界面来袭