From 1132a094ae07f3a637eba2f027538d7cda752776 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Mon, 1 Apr 2019 16:15:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=20IFreeSql.Transaction=20?= =?UTF-8?q?=E5=8F=AF=E5=B5=8C=E5=A5=97=E8=BF=9E=E7=BB=AD=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=EF=BC=8C=E4=B9=8B=E5=89=8D=E4=BC=9A=E6=AD=BB=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql/FreeSql.csproj | 2 +- .../CommonProvider/AdoProvider/AdoProviderTransaction.cs | 2 ++ FreeSql/Internal/CommonProvider/UpdateProvider.cs | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/FreeSql/FreeSql.csproj b/FreeSql/FreeSql.csproj index 12b5e2bd..1755002b 100644 --- a/FreeSql/FreeSql.csproj +++ b/FreeSql/FreeSql.csproj @@ -2,7 +2,7 @@ netstandard2.0 - 0.4.1 + 0.4.1.2 true YeXiangQin FreeSql is the most convenient ORM in dotnet. It supports Mysql, Postgresql, SqlServer, Oracle and Sqlite. diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs index 460ae498..a0f3e612 100644 --- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs +++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProviderTransaction.cs @@ -48,6 +48,8 @@ namespace FreeSql.Internal.CommonProvider { public void TransactionPreRemoveCache(params string[] key) => PreRemove(key); public void BeginTransaction(TimeSpan timeout) { + if (TransactionCurrentThread != null) return; + int tid = Thread.CurrentThread.ManagedThreadId; Transaction2 tran = null; Object conn = null; diff --git a/FreeSql/Internal/CommonProvider/UpdateProvider.cs b/FreeSql/Internal/CommonProvider/UpdateProvider.cs index 12ccb98a..975580a2 100644 --- a/FreeSql/Internal/CommonProvider/UpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/UpdateProvider.cs @@ -388,7 +388,7 @@ namespace FreeSql.Internal.CommonProvider { _paramsSource.Clear(); var colidx = 0; foreach (var col in _table.Columns.Values) { - if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.CsName) == false) { + if (col.Attribute.IsIdentity == false && col.Attribute.IsVersion == false && _ignore.ContainsKey(col.CsName) == false) { if (colidx > 0) sb.Append(", "); sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = "); var value = _table.Properties.TryGetValue(col.CsName, out var tryp) ? tryp.GetValue(_source.First()) : null; @@ -414,7 +414,7 @@ namespace FreeSql.Internal.CommonProvider { _paramsSource.Clear(); var colidx = 0; foreach (var col in _table.Columns.Values) { - if (col.Attribute.IsIdentity == false && _ignore.ContainsKey(col.CsName) == false) { + if (col.Attribute.IsIdentity == false && col.Attribute.IsVersion == false && _ignore.ContainsKey(col.CsName) == false) { if (colidx > 0) sb.Append(", "); sb.Append(_commonUtils.QuoteSqlName(col.Attribute.Name)).Append(" = ");