From 91520f404e30fc5167a761ae46443e512a860707 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=A3=E5=B0=91?= <44958302+ligengrong@users.noreply.github.com> Date: Tue, 26 Jul 2022 13:36:03 +0800 Subject: [PATCH] =?UTF-8?q?SQLite=E5=BC=82=E6=AD=A5SaveAsync=20=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E6=89=A7=E8=A1=8CInsert=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原SQL:Insert Into Table (text) Do Update test=a.text --- XCode/Entity/EntityExtension.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/XCode/Entity/EntityExtension.cs b/XCode/Entity/EntityExtension.cs index 71010f251..78474225f 100644 --- a/XCode/Entity/EntityExtension.cs +++ b/XCode/Entity/EntityExtension.cs @@ -701,7 +701,7 @@ public static Int32 Upsert(this IEnumerable list, IDataColumn[] columns = var dbt = session.Dal.DbType; if (dbt is DatabaseType.SqlServer or DatabaseType.Oracle) columns = fact.Fields.Select(e => e.Field).Where(e => !e.Identity || e.PrimaryKey).ToArray(); - else if (dbt == DatabaseType.MySql) + else if (dbt is DatabaseType.MySql or DatabaseType.SQLite) //SQLite库集合更新这里用到了Insert Into Do Update,所以不能排除主键填充,所以这里增加了 or DatabaseType.SQLite columns = fact.Fields.Select(e => e.Field).ToArray(); //只有标识键的情况下会导致重复执行insert方法 目前只测试了Mysql库 else columns = fact.Fields.Select(e => e.Field).Where(e => !e.Identity).ToArray(); @@ -1156,4 +1156,4 @@ public static DataSet ToDataSet(this IEnumerable list) where T : IEntity } #endregion } -} \ No newline at end of file +}