diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 17e209b4..1a5086ea 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -2128,6 +2128,16 @@
数据库类型
+
+
+ UseConnectionString 时候的值
+
+
+
+
+ UseSalve 时候的值
+
+
开启事务(不支持异步),60秒未执行完成(可能)被其他线程事务自动提交
diff --git a/FreeSql/Interface/IAdo.cs b/FreeSql/Interface/IAdo.cs
index d5ec0a8c..2cb27f7b 100644
--- a/FreeSql/Interface/IAdo.cs
+++ b/FreeSql/Interface/IAdo.cs
@@ -24,6 +24,14 @@ namespace FreeSql
/// 数据库类型
///
DataType DataType { get; }
+ ///
+ /// UseConnectionString 时候的值
+ ///
+ string ConnectionString { get; }
+ ///
+ /// UseSalve 时候的值
+ ///
+ string[] SlaveConnectionStrings { get; }
#region 事务
///
diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
index 07d785ca..a5ebb8db 100644
--- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
+++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs
@@ -24,14 +24,18 @@ namespace FreeSql.Internal.CommonProvider
public IObjectPool MasterPool { get; protected set; }
public List> SlavePools { get; } = new List>();
public DataType DataType { get; }
+ public string ConnectionString { get; }
+ public string[] SlaveConnectionStrings { get; }
protected CommonUtils _util { get; set; }
protected int slaveUnavailables = 0;
private object slaveLock = new object();
private Random slaveRandom = new Random();
- public AdoProvider(DataType dataType)
+ public AdoProvider(DataType dataType, string connectionString, string[] slaveConnectionStrings)
{
this.DataType = dataType;
+ this.ConnectionString = connectionString;
+ this.SlaveConnectionStrings = slaveConnectionStrings;
}
void LoggerException(IObjectPool pool, PrepareCommandResult pc, Exception ex, DateTime dt, StringBuilder logtxt, bool isThrowException = true)
diff --git a/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessAdo.cs b/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessAdo.cs
index 195dbb9d..496e9d1e 100644
--- a/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessAdo.cs
+++ b/Providers/FreeSql.Provider.MsAccess/MsAccessAdo/MsAccessAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.MsAccess
{
class MsAccessAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public MsAccessAdo() : base(DataType.MsAccess) { }
- public MsAccessAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.MsAccess)
+ public MsAccessAdo() : base(DataType.MsAccess, null, null) { }
+ public MsAccessAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.MsAccess, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlAdo.cs b/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlAdo.cs
index d6df8d17..2eeaa75b 100644
--- a/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlAdo.cs
+++ b/Providers/FreeSql.Provider.MySql/MySqlAdo/MySqlAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.MySql
class MySqlAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public MySqlAdo() : base(DataType.MySql) { }
- public MySqlAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.MySql)
+ public MySqlAdo() : base(DataType.MySql, null, null) { }
+ public MySqlAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.MySql, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengAdo.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengAdo.cs
index f485abe1..71547169 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengAdo.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengAdo/OdbcDamengAdo.cs
@@ -12,8 +12,8 @@ namespace FreeSql.Odbc.Dameng
{
class OdbcDamengAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OdbcDamengAdo() : base(DataType.OdbcDameng) { }
- public OdbcDamengAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcDameng)
+ public OdbcDamengAdo() : base(DataType.OdbcDameng, null, null) { }
+ public OdbcDamengAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcDameng, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcAdo.cs b/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcAdo.cs
index f11b8b10..eb17053b 100644
--- a/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcAdo.cs
+++ b/Providers/FreeSql.Provider.Odbc/Default/OdbcAdo/OdbcAdo.cs
@@ -12,8 +12,8 @@ namespace FreeSql.Odbc.Default
{
class OdbcAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OdbcAdo() : base(DataType.Odbc) { }
- public OdbcAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.Odbc)
+ public OdbcAdo() : base(DataType.Odbc, null, null) { }
+ public OdbcAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.Odbc, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlAdo.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlAdo.cs
index 94921b95..41aa2ed3 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlAdo.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlAdo/OdbcMySqlAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.Odbc.MySql
class OdbcMySqlAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OdbcMySqlAdo() : base(DataType.OdbcMySql) { }
- public OdbcMySqlAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcMySql)
+ public OdbcMySqlAdo() : base(DataType.OdbcMySql, null, null) { }
+ public OdbcMySqlAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcMySql, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleAdo.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleAdo.cs
index bb33aa87..699f2912 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleAdo.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleAdo/OdbcOracleAdo.cs
@@ -12,8 +12,8 @@ namespace FreeSql.Odbc.Oracle
{
class OdbcOracleAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OdbcOracleAdo() : base(DataType.OdbcOracle) { }
- public OdbcOracleAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcOracle)
+ public OdbcOracleAdo() : base(DataType.OdbcOracle, null, null) { }
+ public OdbcOracleAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcOracle, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLAdo.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLAdo.cs
index 60361f3e..d37dc5ba 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLAdo.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLAdo/OdbcPostgreSQLAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.Odbc.PostgreSQL
{
class OdbcPostgreSQLAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OdbcPostgreSQLAdo() : base(DataType.OdbcPostgreSQL) { }
- public OdbcPostgreSQLAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcPostgreSQL)
+ public OdbcPostgreSQLAdo() : base(DataType.OdbcPostgreSQL, null, null) { }
+ public OdbcPostgreSQLAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcPostgreSQL, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerAdo.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerAdo.cs
index 9f2f291e..0bba96e3 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerAdo.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerAdo/OdbcSqlServerAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.Odbc.SqlServer
{
class OdbcSqlServerAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OdbcSqlServerAdo() : base(DataType.OdbcSqlServer) { }
- public OdbcSqlServerAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcSqlServer)
+ public OdbcSqlServerAdo() : base(DataType.OdbcSqlServer, null, null) { }
+ public OdbcSqlServerAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.OdbcSqlServer, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleAdo.cs b/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleAdo.cs
index 791f4f7b..59ac3c98 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleAdo.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleAdo/OracleAdo.cs
@@ -12,8 +12,8 @@ namespace FreeSql.Oracle
{
class OracleAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public OracleAdo() : base(DataType.Oracle) { }
- public OracleAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.Oracle)
+ public OracleAdo() : base(DataType.Oracle, null, null) { }
+ public OracleAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.Oracle, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs
index 5f1600b9..3e9423dc 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs
@@ -14,8 +14,8 @@ namespace FreeSql.PostgreSQL
{
class PostgreSQLAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public PostgreSQLAdo() : base(DataType.PostgreSQL) { }
- public PostgreSQLAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.PostgreSQL)
+ public PostgreSQLAdo() : base(DataType.PostgreSQL, null, null) { }
+ public PostgreSQLAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.PostgreSQL, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs
index 08bce9b7..ea278f04 100644
--- a/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs
+++ b/Providers/FreeSql.Provider.SqlServer/SqlServerAdo/SqlServerAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.SqlServer
{
class SqlServerAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public SqlServerAdo() : base(DataType.SqlServer) { }
- public SqlServerAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.SqlServer)
+ public SqlServerAdo() : base(DataType.SqlServer, null, null) { }
+ public SqlServerAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.SqlServer, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteAdo.cs b/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteAdo.cs
index 357b87b8..c1cc9252 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteAdo.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteAdo/SqliteAdo.cs
@@ -13,8 +13,8 @@ namespace FreeSql.Sqlite
{
class SqliteAdo : FreeSql.Internal.CommonProvider.AdoProvider
{
- public SqliteAdo() : base(DataType.Sqlite) { }
- public SqliteAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.Sqlite)
+ public SqliteAdo() : base(DataType.Sqlite, null, null) { }
+ public SqliteAdo(CommonUtils util, string masterConnectionString, string[] slaveConnectionStrings, Func connectionFactory) : base(DataType.Sqlite, masterConnectionString, slaveConnectionStrings)
{
base._util = util;
if (connectionFactory != null)