From 5c427c0b6b4bf5246270ab73d87cd3ec39ae28be Mon Sep 17 00:00:00 2001
From: 2881099 <2881099@qq.com>
Date: Mon, 13 Jun 2022 20:01:30 +0800
Subject: [PATCH] v3.2.663 #1155
---
Directory.Build.props | 2 +-
.../CommonProvider/SelectProvider/Select0Provider.cs | 8 +++++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Directory.Build.props b/Directory.Build.props
index b27909c0..373f2363 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -9,7 +9,7 @@
- 3.2.666-preview20220612
+ 3.2.663
diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
index 457747fd..8304e406 100644
--- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
+++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs
@@ -21,6 +21,7 @@ namespace FreeSql.Internal.CommonProvider
public string _select = "SELECT ", _orderby, _groupby, _having;
public StringBuilder _where = new StringBuilder();
public List _params = new List();
+ public List _paramsInit;
public List _tables = new List();
public List> _tableRules = new List>();
public Func _tableRule => _tableRules?.FirstOrDefault();
@@ -46,12 +47,17 @@ namespace FreeSql.Internal.CommonProvider
public Func _cancel;
public bool _is_AsTreeCte;
+ public Select0Provider()
+ {
+ _paramsInit = _params;
+ }
+
int _disposeCounter;
~Select0Provider()
{
if (Interlocked.Increment(ref _disposeCounter) != 1) return;
_where.Clear();
- //_params.Clear(); 子查询与主查询共享,并发导致错误清除了主查询参数化信息 https://github.com/dotnetcore/FreeSql/issues/1155
+ if (_paramsInit == _params) _params.Clear(); //子查询与主查询共享,并发导致错误清除了主查询参数化信息 https://github.com/dotnetcore/FreeSql/issues/1155
_tables.Clear();
_tableRules.Clear();
_join.Clear();