彩票网站怎么做赚钱,上海公司注册联贝财务优势,互联网推广是什么工作内容,苏州网站建设最佳方案在.netstandard2.0时 System.Data.Common 这个包里并没有加入DbProviderFactoriesDbProviderFactories类在.netframework中是非常重要的存在,依靠他可以适配各种数据库客户端#xff08;sqlserver、mysql、sqllite等#xff09;创建数据库连接。现在可以像.netframework中一样… 在.netstandard2.0时 System.Data.Common 这个包里并没有加入DbProviderFactoriesDbProviderFactories类在.netframework中是非常重要的存在,依靠他可以适配各种数据库客户端sqlserver、mysql、sqllite等创建数据库连接。现在可以像.netframework中一样愉快的使用 DbProviderFactory factory DbProviderFactories.GetFactory(MySql.Data.MySqlClient);但是如果直接这么写代码的话就会报错System.ArgumentException:“The specified invariant name MySql.Data.MySqlClient wasnt 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);前面是工厂的类型名称后面是类所在的应用程序集即可达到同样的效果