diff --git a/Examples/base_entity/Program.cs b/Examples/base_entity/Program.cs index 311acc99..ae9c00ce 100644 --- a/Examples/base_entity/Program.cs +++ b/Examples/base_entity/Program.cs @@ -277,12 +277,31 @@ namespace base_entity public bool IsDeleted { get; set; } } + static void TestExp(IFreeSql fsql) + { + var tasks = new List(); + + for (var a = 0; a < 1000; a++) + { + var task = Task.Run(async () => + { + var name = "123"; + var result = await fsql.Select() + .Where(t => t.Name == name + && fsql.Select().Any(t2 => t2.Id == t.Id)).ToListAsync(); + }); + tasks.Add(task); + } + Task.WaitAll(tasks.ToArray()); + } + static void Main(string[] args) { #region 初始化 IFreeSql var fsql = new FreeSql.FreeSqlBuilder() .UseAutoSyncStructure(true) .UseNoneCommandParameter(true) + .UseGenerateCommandParameterWithLambda(true) .UseConnectionString(FreeSql.DataType.Sqlite, "data source=test1.db;max pool size=5") //.UseSlave("data source=test1.db", "data source=test2.db", "data source=test3.db", "data source=test4.db") @@ -294,7 +313,7 @@ namespace base_entity .UseConnectionString(FreeSql.DataType.MySql, "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=2") - //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") + .UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3;TrustServerCertificate=true") //.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=tedb;Pooling=true;Maximum Pool Size=2") //.UseConnectionString(FreeSql.DataType.PostgreSQL, "Host=192.168.164.10;Port=5432;Username=postgres;Password=123456;Database=toc;Pooling=true;Maximum Pool Size=2") @@ -325,6 +344,8 @@ namespace base_entity BaseEntity.Initialization(fsql, () => _asyncUow.Value); #endregion + TestExp(fsql); + fsql.CodeFirst.GetTableByEntity(typeof(TestComment01)); fsql.Select(); diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 1ab5bf1c..6b638cad 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -795,14 +795,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index d777bca8..457747fd 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -51,7 +51,7 @@ namespace FreeSql.Internal.CommonProvider { if (Interlocked.Increment(ref _disposeCounter) != 1) return; _where.Clear(); - _params.Clear(); + //_params.Clear(); 子查询与主查询共享,并发导致错误清除了主查询参数化信息 https://github.com/dotnetcore/FreeSql/issues/1155 _tables.Clear(); _tableRules.Clear(); _join.Clear();