数据库提供者
为了适配不同的数据库,Fireasy 制定了 IProvider
接口,提供一些必要的方法。目前适配的数据库有:SqlServer
、Oracle
、MySql
、SQLite
、PostgreSql
、Firebird
、MariaDB
(使用 MySql 适配),以及 OleDB
驱动。
IProvider
的属性和方法如下:
1、ProviderName 属性
用于识别及标识提供者的唯一名称。
2、DbProviderFactory 属性
众所周知,ADO.NET
里有一个 DbProviderFactory
工厂类,它扮演着重要的角色,诸如 DbConnection
、DbCommand
、DbParameter
、DbDataAdapter
等几个对象都由它创建。
3、GetConnectionParameter 方法
该方法用于解析连接字符串对象中的一些重要参数,比如服务器地址、数据库名、用户名和密码。
4、UpdateConnectionString 方法
该方法用于将修改后的参数更新到数据库连接串对象中,一般在动态调整这些参数时比较有用。
5、RegisterService 方法
该方法用于将一些插件服务注册到提供者中。
6、GetService 方法
该方法用于获取指定类型的插件服务实例。
7、PrepareConnection、PrepareCommand、PrepareParameter 方法
分别用于修正 DbConnection
、DbCommand
、DbParameter
对象。
8、AmendIsolationLevel 方法
用于修正某些数据库所不支持的事务级别。比如 SQLite
不支持 ReadUncommitted 级别的事务。
💡 各数据库所使用的驱动
数据库 | .Net Framework 应用 | .Net Core 应用 |
---|---|---|
SqlServer | System.Data.SqlClient | System.Data.SqlClient |
MySql MariaDB |
MySql.Data MySqlConnector |
MySql.Data MySqlConnector |
Oracle | Oracle.ManagedDataAccess Oracle.DataAccess System.Data.OracleClient |
Oracle.ManagedDataAccess Mono.Data.OracleClientCore |
SQLite | System.Data.SQLite | System.Data.SQLite Microsoft.Data.Sqlite Spreads.SQLite |
Firebird | FirebirdSql.Data.FirebirdClient | FirebirdSql.Data.FirebirdClient |
PostgreSql | Npgsql | Npgsql |
注:如果安装了几种驱动,则按从上到下的顺序进行匹配。