diff --git a/FreeSql/DatabaseModel/DBColumnInfo.cs b/FreeSql/DatabaseModel/DBColumnInfo.cs
index f20ee737..1c5b9949 100644
--- a/FreeSql/DatabaseModel/DBColumnInfo.cs
+++ b/FreeSql/DatabaseModel/DBColumnInfo.cs
@@ -52,5 +52,9 @@ namespace FreeSql.DatabaseModel
/// 数据库默认值
///
public string DefaultValue { get; set; }
+ ///
+ /// 字段位置
+ ///
+ public int Position { get; set; }
}
}
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index cb7ec67f..09a5a1d6 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -445,6 +445,11 @@
数据库默认值
+
+
+ 字段位置
+
+
枚举类型标识
@@ -2305,137 +2310,6 @@
-
-
- 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】
-
-
-
-
-
-
-
-
- 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > ?age", new { age = 25 })
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
- 查询,ExecuteArrayAsync("select * from user where age > ?age", new { age = 25 })
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
- 查询,ExecuteDataSetAsync("select * from user where age > ?age; select 2", new { age = 25 })
-
-
-
-
-
-
-
- 查询
-
-
-
-
-
-
- 查询,ExecuteDataTableAsync("select * from user where age > ?age", new { age = 25 })
-
-
-
-
-
-
-
- 在【主库】执行
-
-
-
-
-
-
-
- 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > ?age", new { age = 25 })
-
-
-
-
-
-
-
- 在【主库】执行
-
-
-
-
-
-
-
- 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > ?age", new { age = 25 })
-
-
-
-
-
-
-
- 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > ?age", new SqlParameter { ParameterName = "age", Value = 25 })
-
-
-
-
-
-
-
-
-
- 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > ?age", new { age = 25 })
-
-
-
-
-
-
-
-
- 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
-
-
-
-
-
-
-
-
-
- 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new { age = 25 })
-
-
-
-
-
-
可自定义解析表达式
@@ -2956,6 +2830,166 @@
超时
+
+
+ 使用完毕后,归还资源
+
+ 对象
+ 是否重新创建
+
+
+
+ 名称
+
+
+
+
+ 池容量
+
+
+
+
+ 默认获取超时设置
+
+
+
+
+ 空闲时间,获取时若超出,则重新创建
+
+
+
+
+ 异步获取排队队列大小,小于等于0不生效
+
+
+
+
+ 获取超时后,是否抛出异常
+
+
+
+
+ 监听 AppDomain.CurrentDomain.ProcessExit/Console.CancelKeyPress 事件自动释放
+
+
+ ry>
+ 获取c#值
+
+
+
+
+
+
+ 获取c#类型,int、long
+
+
+
+
+
+
+ 获取c#类型对象
+
+
+
+
+
+
+ 获取ado.net读取方法, GetBoolean、GetInt64
+
+
+
+
+
+
+ 序列化
+
+
+
+
+
+
+ 反序列化
+
+
+
+
+
+
+ 获取数据库枚举类型,适用 PostgreSQL
+
+
+
+
+
+
+ AsType, Ctor, ClearData 三处地方需要重新加载
+
+
+
+
+ AsType, Ctor, ClearData 三处地方需要重新加载
+
+
+
+
+ 通过属性的注释文本,通过 xml 读取
+
+
+ Dict:key=属性名,value=注释
+
+
+
+ 创建一个过滤器
+
+
+ 名字
+ 表达式
+
+
+
+
+ 中间表,多对多
+
+
+
+
+ 是否可用
+
+
+
+
+ 不可用错误
+
+
+
+
+ 不可用时间
+
+
+
+
+ 将对象池设置为不可用,后续 Get/GetAsync 均会报错,同时启动后台定时检查服务恢复可用
+
+
+ 由【可用】变成【不可用】时返回true,否则返回false
+
+
+
+ 统计对象池中的对象
+
+
+
+
+ 统计对象池中的对象(完整)
+
+
+
+
+ 获取资源
+
+ 超时
+
+
获取资源
diff --git a/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs b/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs
index 2b11cd9e..fc926d72 100644
--- a/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs
+++ b/Providers/FreeSql.Provider.Dameng/DamengDbFirst.cs
@@ -330,6 +330,7 @@ where a.owner in ({1}) and {0}
ds2item[8] = string.Concat(row[10]);
ds2.Add(ds2item);
}
+ var position = 0;
foreach (var row in ds2)
{
string table_id = string.Concat(row[0]);
@@ -359,7 +360,8 @@ where a.owner in ({1}) and {0}
DbTypeTextFull = sqlType,
Table = loc2[table_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs b/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs
index 3669cf14..48a7b416 100644
--- a/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs
+++ b/Providers/FreeSql.Provider.MySql/MySqlDbFirst.cs
@@ -246,6 +246,7 @@ where a.table_schema in ({1}) and {0}
ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
if (ds == null) return loc1;
+ var position = 0;
foreach (var row in ds)
{
string table_id = string.Concat(row[0]);
@@ -275,7 +276,8 @@ where a.table_schema in ({1}) and {0}
DbTypeTextFull = sqlType,
Table = loc2[table_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs
index d6eccbdc..eb2e1ddc 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengDbFirst.cs
@@ -330,6 +330,7 @@ where a.owner in ({1}) and {0}
ds2item[8] = string.Concat(row[10]);
ds2.Add(ds2item);
}
+ var position = 0;
foreach (var row in ds2)
{
string table_id = string.Concat(row[0]);
@@ -359,7 +360,8 @@ where a.owner in ({1}) and {0}
DbTypeTextFull = sqlType,
Table = loc2[table_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlDbFirst.cs b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlDbFirst.cs
index 37e29ab5..66734859 100644
--- a/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/MySql/OdbcMySqlDbFirst.cs
@@ -216,6 +216,7 @@ where a.table_schema in ({1}) and {0}
ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
if (ds == null) return loc1;
+ var position = 0;
foreach (var row in ds)
{
string table_id = string.Concat(row[0]);
@@ -245,7 +246,8 @@ where a.table_schema in ({1}) and {0}
DbTypeTextFull = sqlType,
Table = loc2[table_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs
index 35d1dd29..23c409a4 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleDbFirst.cs
@@ -303,6 +303,7 @@ where a.owner in ({1}) and {0}
ds2item[8] = string.Concat(row[10]);
ds2.Add(ds2item);
}
+ var position = 0;
foreach (var row in ds2)
{
string table_id = string.Concat(row[0]);
@@ -332,7 +333,8 @@ where a.owner in ({1}) and {0}
DbTypeTextFull = sqlType,
Table = loc2[table_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs
index e7115a26..613e8c4b 100644
--- a/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/PostgreSQL/OdbcPostgreSQLDbFirst.cs
@@ -228,6 +228,7 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || c.relname")
ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
if (ds == null) return loc1;
+ var position = 0;
foreach (object[] row in ds)
{
var object_id = string.Concat(row[0]);
@@ -275,7 +276,8 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || c.relname")
DbTypeTextFull = sqlType,
Table = loc2[object_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[object_id][column].DbType = this.GetDbType(loc3[object_id][column]);
loc3[object_id][column].CsType = this.GetCsTypeInfo(loc3[object_id][column]);
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs
index 58ed15d7..7c5eb871 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerDbFirst.cs
@@ -268,6 +268,7 @@ from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"), "
ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
if (ds == null) return loc1;
+ var position = 0;
foreach (object[] row in ds)
{
var table_id = string.Concat(row[0]);
@@ -293,7 +294,8 @@ from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"), "
DbTypeTextFull = sqlType,
Table = loc2[object_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[object_id][column].DbType = this.GetDbType(loc3[object_id][column]);
loc3[object_id][column].CsType = this.GetCsTypeInfo(loc3[object_id][column]);
diff --git a/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs
index d84307ed..fb01732d 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleDbFirst.cs
@@ -303,6 +303,7 @@ where a.owner in ({1}) and {0}
ds2item[8] = string.Concat(row[10]);
ds2.Add(ds2item);
}
+ var position = 0;
foreach (var row in ds2)
{
string table_id = string.Concat(row[0]);
@@ -332,7 +333,8 @@ where a.owner in ({1}) and {0}
DbTypeTextFull = sqlType,
Table = loc2[table_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[table_id][column].DbType = this.GetDbType(loc3[table_id][column]);
loc3[table_id][column].CsType = this.GetCsTypeInfo(loc3[table_id][column]);
diff --git a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs
index 65a9d2f0..bba4d80a 100644
--- a/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs
+++ b/Providers/FreeSql.Provider.PostgreSQL/PostgreSQLDbFirst.cs
@@ -338,6 +338,7 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || c.relname")
ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
if (ds == null) return loc1;
+ var position = 0;
foreach (object[] row in ds)
{
var object_id = string.Concat(row[0]);
@@ -385,7 +386,8 @@ where {loc8.ToString().Replace("a.table_name", "ns.nspname || '.' || c.relname")
DbTypeTextFull = sqlType,
Table = loc2[object_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[object_id][column].DbType = this.GetDbType(loc3[object_id][column]);
loc3[object_id][column].CsType = this.GetCsTypeInfo(loc3[object_id][column]);
diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs
index 96cbe84a..ff0dd7e4 100644
--- a/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs
+++ b/Providers/FreeSql.Provider.SqlServer/SqlServerDbFirst.cs
@@ -271,6 +271,7 @@ from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"), "
ds = _orm.Ado.ExecuteArray(CommandType.Text, sql);
if (ds == null) return loc1;
+ var position = 0;
foreach (object[] row in ds)
{
var table_id = string.Concat(row[0]);
@@ -296,7 +297,8 @@ from sys.parameters", loc88.ToString().Replace("a.table_name", "a.object_id"), "
DbTypeTextFull = sqlType,
Table = loc2[object_id],
Coment = comment,
- DefaultValue = defaultValue
+ DefaultValue = defaultValue,
+ Position = ++position
});
loc3[object_id][column].DbType = this.GetDbType(loc3[object_id][column]);
loc3[object_id][column].CsType = this.GetCsTypeInfo(loc3[object_id][column]);
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteDbFirst.cs b/Providers/FreeSql.Provider.Sqlite/SqliteDbFirst.cs
index 7c2bae80..38b64903 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteDbFirst.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteDbFirst.cs
@@ -159,7 +159,7 @@ namespace FreeSql.Sqlite
if (database == null || database.Any() == false) database = GetDatabases().ToArray();
if (database.Any() == false) return loc1;
- Action