From 0d6ebc1e265f83b2dccdbbce68c2a0b31189fc39 Mon Sep 17 00:00:00 2001
From: 28810 <28810@YEXIANGQIN>
Date: Tue, 26 May 2020 02:50:21 +0800
Subject: [PATCH] =?UTF-8?q?-=20=E4=BC=98=E5=8C=96=20CodeFirst=20=E5=AD=97?=
=?UTF-8?q?=E6=AE=B5=E5=8F=98=E5=8C=96=E5=AF=B9=E6=AF=94=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 3 +
Examples/base_entity/Program.cs | 11 +-
FreeSql.DbContext/FreeSql.DbContext.xml | 9 -
FreeSql.Tests/FreeSql.Tests/UnitTest1.cs | 11 +
FreeSql/FreeSql.xml | 312 ++++++++----------
.../DamengCodeFirst.cs | 5 +-
.../MsAccessCodeFirst.cs | 6 +-
.../Dameng/OdbcDamengCodeFirst.cs | 5 +-
.../Oracle/OdbcOracleCodeFirst.cs | 5 +-
.../SqlServer/OdbcSqlServerCodeFirst.cs | 3 +
.../OracleCodeFirst.cs | 5 +-
.../SqlServerCodeFirst.cs | 3 +
.../SqliteCodeFirst.cs | 6 +-
13 files changed, 199 insertions(+), 185 deletions(-)
diff --git a/.gitignore b/.gitignore
index de79a863..0230a2ae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,9 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
+FreeSql.xml
+FreeSql.DbContext.xml
+
# User-specific files
*.suo
*.user
diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs
index 385e38a5..5b0aca9d 100644
--- a/Examples/base_entity/Program.cs
+++ b/Examples/base_entity/Program.cs
@@ -5,6 +5,7 @@ using FreeSql.Internal.Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
+using System.Data.Odbc;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Linq.Expressions;
@@ -41,6 +42,14 @@ namespace base_entity
static void Main(string[] args)
{
+ var conn = new OdbcConnection("Driver={KingbaseES 8.2 ODBC Driver ANSI};Server=127.0.0.1;Port=54321;UID=USER2;PWD=123456789;database=TEST");
+ conn.Open();
+ var cmd = conn.CreateCommand();
+ cmd.CommandText = "insert into cc2.IDETB01(C1) values(1),(2)";
+ cmd.ExecuteNonQuery();
+ cmd.CommandText = "select C1 from cc2.\"IDETB01\" where rownum < 2";
+ var idw = cmd.ExecuteScalar();
+ conn.Close();
#region 初始化 IFreeSql
var fsql = new FreeSql.FreeSqlBuilder()
@@ -72,7 +81,7 @@ namespace base_entity
//.UseConnectionString(FreeSql.DataType.OdbcDameng, "Driver={DM8 ODBC DRIVER};Server=127.0.0.1:5236;Persist Security Info=False;Trusted_Connection=Yes;UID=USER1;PWD=123456789")
- .UseMonitorCommand(cmd => Console.WriteLine(cmd.CommandText))
+ .UseMonitorCommand(umcmd => Console.WriteLine(umcmd.CommandText))
.UseLazyLoading(true)
.Build();
BaseEntity.Initialization(fsql, () => _asyncUow.Value);
diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index 4854f49c..474ea8d5 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -486,14 +486,5 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs
index 2c5357c4..f8499441 100644
--- a/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs
+++ b/FreeSql.Tests/FreeSql.Tests/UnitTest1.cs
@@ -438,6 +438,17 @@ namespace FreeSql.Tests
[Fact]
public void Test1()
{
+ var testemoji = new TestGuidId { xxx = "💐🌸💮🌹🌺🌻🌼🌷🌱🌿🍀" };
+ Assert.Equal(1, g.sqlserver.Insert(testemoji).ExecuteAffrows());
+ var emoji = g.sqlserver.Select().Where(a => a.Id == testemoji.Id).First();
+ Assert.Equal("💐🌸💮🌹🌺🌻🌼🌷🌱🌿🍀", emoji.xxx);
+
+ Assert.Equal(1, g.sqlserver.Delete(testemoji).ExecuteAffrows());
+ testemoji = new TestGuidId { xxx = "💐🌸💮🌹🌺🌻🌼🌷🌱🌿🍀" };
+ Assert.Equal(1, g.sqlserver.Insert().NoneParameter().AppendData(testemoji).ExecuteAffrows());
+ emoji = g.sqlserver.Select().Where(a => a.Id == testemoji.Id).First();
+ Assert.Equal("💐🌸💮🌹🌺🌻🌼🌷🌱🌿🍀", emoji.xxx);
+
var _model = new TestUpdateModel {
F_EmpId = "xx11",
F_RoleType = TestUpdateModelEnum.x2,
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index b63f13b6..5545a967 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -2405,6 +2405,137 @@
+
+
+ 查询,若使用读写分离,查询【从库】条件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 })
+
+
+
+
+
+
可自定义解析表达式
@@ -3007,6 +3138,12 @@
超时
+
+
+ 获取资源
+
+
+
使用完毕后,归还资源
@@ -3077,6 +3214,12 @@
资源对象
+
+
+ 从对象池获取对象成功的时候触发,通过该方法统计或初始化对象
+
+ 资源对象
+
归还对象给对象池的时候触发
@@ -3718,172 +3861,3 @@
-xpression{System.Func{``0,``1,``2,``3,``4,System.Boolean}})">
-
- 使用 or 拼接两个 lambda 表达式
-
-
-
-
-
- 使用 or 拼接两个 lambda 表达式
-
-
- true 时生效
-
-
-
-
-
- 将 lambda 表达式取反
-
-
- true 时生效
-
-
-
-
- 生成类似Mongodb的ObjectId有序、不重复Guid
-
-
-
-
-
- 插入数据
-
-
-
-
-
-
- 插入数据,传入实体
-
-
-
-
-
-
-
- 插入数据,传入实体数组
-
-
-
-
-
-
-
- 插入数据,传入实体集合
-
-
-
-
-
-
-
- 插入数据,传入实体集合
-
-
-
-
-
-
-
- 插入或更新数据
- MySql: on duplicate key update
- PostgreSQL: on conflict do update
- SqlServer: merge into
- Oracle: merge into
- Sqlite: replace into
- Dameng: merge into
- 注意:还可以使用 FreeSql.Repository 的 InsertOrUpdate 方法
-
-
-
-
-
-
- 修改数据
-
-
-
-
-
-
- 修改数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
-
-
- 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
-
-
-
-
- 查询数据
-
-
-
-
-
-
- 查询数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
-
-
- 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
-
-
-
-
- 删除数据
-
-
-
-
-
-
- 删除数据,传入动态条件,如:主键值 | new[]{主键值1,主键值2} | TEntity1 | new[]{TEntity1,TEntity2} | new{id=1}
-
-
- 主键值、主键值集合、实体、实体集合、匿名对象、匿名对象集合
-
-
-
-
- 开启事务(不支持异步)
- v1.5.0 关闭了线程事务超时自动提交的机制
-
- 事务体 () => {}
-
-
-
- 开启事务(不支持异步)
- v1.5.0 关闭了线程事务超时自动提交的机制
-
-
- 事务体 () => {}
-
-
-
- 数据库访问对象
-
-
-
-
- 所有拦截方法都在这里
-
-
-
-
- CodeFirst 模式开发相关方法
-
-
-
-
- DbFirst 模式开发相关方法
-
-
-
-
- 全局过滤设置,可默认附加为 Select/Update/Delete 条件
-
-
-
-
diff --git a/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs b/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs
index d039e15d..67910e61 100644
--- a/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Dameng/DamengCodeFirst.cs
@@ -229,6 +229,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (istmpatler && Regex.IsMatch(tbcol.Attribute.DbType, @"\(\d+") == false && Regex.IsMatch(tbstructcol.sqlType, @"\(\d+")
&& string.Compare(tbcol.Attribute.DbType, Regex.Replace(tbstructcol.sqlType, @"\([^\)]+\)", ""), StringComparison.CurrentCultureIgnoreCase) == 0)
istmpatler = false;
+ if (istmpatler) break;
}
//sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY (").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" ").Append(dbtypeNoneNotNull).Append(")';\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
@@ -262,7 +263,9 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true));
if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n");
}
-
+ }
+ if (istmpatler == false)
+ {
var dsuksql = _commonUtils.FormatSql(@"
select
c.column_name,
diff --git a/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs b/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs
index a78a56ea..463c0001 100644
--- a/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs
+++ b/Providers/FreeSql.Provider.MsAccess/MsAccessCodeFirst.cs
@@ -353,9 +353,10 @@ namespace FreeSql.MsAccess
{
foreach (var tbcol in tb.ColumnsByPosition)
{
+ if (istmpatler) break;
var dbtypeNoneNotNull = Regex.Replace(tbcol.Attribute.DbType, @"NOT\s+NULL", "NULL");
if (tbstruct.TryGetValue(tbcol.Attribute.Name, out var tbstructcol) ||
- string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
+ string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
if (tbstructcol.sqlType != "LONG" && tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false)
istmpatler = true;
@@ -371,6 +372,9 @@ namespace FreeSql.MsAccess
//添加列
istmpatler = true;
}
+ }
+ if (istmpatler == false)
+ {
var dsuk = getIndexesByTableName(tbtmp);
foreach (var uk in tb.Indexes)
{
diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs
index da91867c..1440f806 100644
--- a/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Dameng/OdbcDamengCodeFirst.cs
@@ -229,6 +229,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (istmpatler && Regex.IsMatch(tbcol.Attribute.DbType, @"\(\d+") == false && Regex.IsMatch(tbstructcol.sqlType, @"\(\d+")
&& string.Compare(tbcol.Attribute.DbType, Regex.Replace(tbstructcol.sqlType, @"\([^\)]+\)", ""), StringComparison.CurrentCultureIgnoreCase) == 0)
istmpatler = false;
+ if (istmpatler) break;
}
//sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY (").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" ").Append(dbtypeNoneNotNull).Append(")';\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
@@ -262,7 +263,9 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true));
if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n");
}
-
+ }
+ if (istmpatler == false)
+ {
var dsuksql = _commonUtils.FormatSql(@"
select
c.column_name,
diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
index cf3b5b64..f1d03da1 100644
--- a/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/Oracle/OdbcOracleCodeFirst.cs
@@ -226,6 +226,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (tbcol.Attribute.DbType.StartsWith("varchar", StringComparison.CurrentCultureIgnoreCase) && tbstructcol.sqlType.StartsWith("varchar2", StringComparison.CurrentCultureIgnoreCase)
&& Regex.Match(tbcol.Attribute.DbType, @"\(\d+").Groups[0].Value == Regex.Match(tbstructcol.sqlType, @"\(\d+").Groups[0].Value)
istmpatler = false;
+ if (istmpatler) break;
}
//sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY (").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" ").Append(dbtypeNoneNotNull).Append(")';\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
@@ -259,7 +260,9 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true));
if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n");
}
-
+ }
+ if (istmpatler == false)
+ {
CreateOracleFunction(_orm);
var dsuksql = _commonUtils.FormatSql(@"
select
diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs
index 0f552451..d6eae2bc 100644
--- a/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Odbc/SqlServer/OdbcSqlServerCodeFirst.cs
@@ -323,6 +323,9 @@ use [" + database + "];", tboldname ?? tbname);
sbalter.Append(";\r\n");
if (string.IsNullOrEmpty(tbcol.Comment) == false) AddOrUpdateMS_Description(sbalter, tbname[1], tbname[2], tbcol.Attribute.Name, tbcol.Comment);
}
+ }
+ if (istmpatler == false)
+ {
var dsuksql = string.Format(@"
use [{0}];
select
diff --git a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
index 8a8abe9d..fbc93fe7 100644
--- a/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Oracle/OracleCodeFirst.cs
@@ -227,6 +227,7 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (tbcol.Attribute.DbType.StartsWith("varchar", StringComparison.CurrentCultureIgnoreCase) && tbstructcol.sqlType.StartsWith("varchar2", StringComparison.CurrentCultureIgnoreCase)
&& Regex.Match(tbcol.Attribute.DbType, @"\(\d+").Groups[0].Value == Regex.Match(tbstructcol.sqlType, @"\(\d+").Groups[0].Value)
istmpatler = false;
+ if (istmpatler) break;
}
//sbalter.Append("execute immediate 'ALTER TABLE ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}")).Append(" MODIFY (").Append(_commonUtils.QuoteSqlName(tbstructcol.column)).Append(" ").Append(dbtypeNoneNotNull).Append(")';\r\n");
if (tbcol.Attribute.IsNullable != tbstructcol.is_nullable)
@@ -260,7 +261,9 @@ where a.owner={{0}} and a.table_name={{1}}", tboldname ?? tbname);
if (tbcol.Attribute.IsIdentity == true) seqcols.Add(NaviteTuple.Create(tbcol, tbname, tbcol.Attribute.IsIdentity == true));
if (string.IsNullOrEmpty(tbcol.Comment) == false) sbalter.Append("execute immediate 'COMMENT ON COLUMN ").Append(_commonUtils.QuoteSqlName($"{tbname[0]}.{tbname[1]}.{tbcol.Attribute.Name}")).Append(" IS ").Append(_commonUtils.FormatSql("{0}", tbcol.Comment ?? "").Replace("'", "''")).Append("';\r\n");
}
-
+ }
+ if (istmpatler == false)
+ {
CreateOracleFunction(_orm);
var dsuksql = _commonUtils.FormatSql(@"
select
diff --git a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs
index 4eaa1476..c5f0959e 100644
--- a/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs
+++ b/Providers/FreeSql.Provider.SqlServer/SqlServerCodeFirst.cs
@@ -322,6 +322,9 @@ use [" + database + "];", tboldname ?? tbname);
sbalter.Append(";\r\n");
if (string.IsNullOrEmpty(tbcol.Comment) == false) AddOrUpdateMS_Description(sbalter, tbname[1], tbname[2], tbcol.Attribute.Name, tbcol.Comment);
}
+ }
+ if (istmpatler == false)
+ {
var dsuksql = string.Format(@"
use [{0}];
select
diff --git a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
index eb267acb..044e1e4c 100644
--- a/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
+++ b/Providers/FreeSql.Provider.Sqlite/SqliteCodeFirst.cs
@@ -184,9 +184,10 @@ namespace FreeSql.Sqlite
{
foreach (var tbcol in tb.ColumnsByPosition)
{
+ if (istmpatler) break;
var dbtypeNoneNotNull = Regex.Replace(tbcol.Attribute.DbType, @"NOT\s+NULL", "NULL");
if (tbstruct.TryGetValue(tbcol.Attribute.Name, out var tbstructcol) ||
- string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
+ string.IsNullOrEmpty(tbcol.Attribute.OldName) == false && tbstruct.TryGetValue(tbcol.Attribute.OldName, out tbstructcol))
{
if (tbcol.Attribute.DbType.StartsWith(tbstructcol.sqlType, StringComparison.CurrentCultureIgnoreCase) == false)
istmpatler = true;
@@ -202,6 +203,9 @@ namespace FreeSql.Sqlite
//添加列
istmpatler = true;
}
+ }
+ if (istmpatler == false)
+ {
var dsuk = new List();
var dbIndexes = _orm.Ado.ExecuteArray(CommandType.Text, $"PRAGMA {_commonUtils.QuoteSqlName(tbtmp[0])}.INDEX_LIST(\"{tbtmp[1]}\")");
foreach (var dbIndex in dbIndexes)