日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.netcore3.0 使用 DbProviderFactories 连接数据库

發布時間:2023/12/4 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.netcore3.0 使用 DbProviderFactories 连接数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在.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 连接数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。