From cfbb143ec657151b7f91b5fc3b21b45ed7e42d46 Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Sat, 15 Feb 2020 17:37:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=B3=A8=E9=87=8A=20Generate?= =?UTF-8?q?CommandParameterWithLambda?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.Tests/FreeSql.Tests/UnitTest3.cs | 10 +++++++--- FreeSql/FreeSqlBuilder.cs | 6 +++++- FreeSql/Interface/ICodeFirst.cs | 6 +++++- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs index bb0e122e..1d90c559 100644 --- a/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs +++ b/FreeSql.Tests/FreeSql.Tests/UnitTest3.cs @@ -59,12 +59,14 @@ namespace FreeSql.Tests ib.Register("db1", () => new FreeSql.FreeSqlBuilder() .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=3") .UseAutoSyncStructure(true) + .UseGenerateCommandParameterWithLambda(true) .UseMonitorCommand(cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText)) .UseLazyLoading(true) .Build()); ib.Register("db2", () => new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.Oracle, "user id=user1;password=123456;data source=//127.0.0.1:1521/XE;Pooling=true;Max Pool Size=3") .UseAutoSyncStructure(true) + .UseGenerateCommandParameterWithLambda(true) .UseLazyLoading(true) .UseSyncStructureToUpper(true) .UseMonitorCommand(cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText)) @@ -72,19 +74,21 @@ namespace FreeSql.Tests ib.Register("db3", () => new FreeSql.FreeSqlBuilder() .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\document.db;Attachs=xxxtb.db;Pooling=true;Max Pool Size=3") .UseAutoSyncStructure(true) + .UseGenerateCommandParameterWithLambda(true) .UseLazyLoading(true) .UseMonitorCommand(cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText)) .Build()); //...注入很多个 var fsql = ib.Get("db1"); //使用的时候用 Get 方法,不要存其引用关系 - fsql.Select().Limit(10).ToList(); + var sqlparamId = 100; + fsql.Select().Limit(10).Where(a => a.id == sqlparamId).ToList(); fsql = ib.Get("db2"); - fsql.Select().Limit(10).ToList(); + fsql.Select().Limit(10).Where(a => a.id == sqlparamId).ToList(); fsql = ib.Get("db3"); - fsql.Select().Limit(10).ToList(); + fsql.Select().Limit(10).Where(a => a.id == sqlparamId).ToList(); fsql = g.sqlserver; fsql.Insert(new OrderMain { OrderNo = "1001", OrderTime = new DateTime(2019, 12, 01) }).ExecuteAffrows(); diff --git a/FreeSql/FreeSqlBuilder.cs b/FreeSql/FreeSqlBuilder.cs index 060ba8f1..3f62e85a 100644 --- a/FreeSql/FreeSqlBuilder.cs +++ b/FreeSql/FreeSqlBuilder.cs @@ -120,7 +120,11 @@ namespace FreeSql return this; } /// - /// 是否生成命令参数化执行,针对 lambda 表达式解析 + /// 是否生成命令参数化执行,针对 lambda 表达式解析 + /// 注意:常量不会参数化,变量才会做参数化 + /// var id = 100; + /// fsql.Select<T>().Where(a => a.id == id) 会参数化 + /// fsql.Select<T>().Where(a => a.id == 100) 不会参数化 /// /// /// diff --git a/FreeSql/Interface/ICodeFirst.cs b/FreeSql/Interface/ICodeFirst.cs index 2d1cec92..482a4358 100644 --- a/FreeSql/Interface/ICodeFirst.cs +++ b/FreeSql/Interface/ICodeFirst.cs @@ -31,7 +31,11 @@ namespace FreeSql /// bool IsNoneCommandParameter { get; set; } /// - /// 是否生成命令参数化执行,针对 lambda 表达式解析 + /// 是否生成命令参数化执行,针对 lambda 表达式解析 + /// 注意:常量不会参数化,变量才会做参数化 + /// var id = 100; + /// fsql.Select<T>().Where(a => a.id == id) 会参数化 + /// fsql.Select<T>().Where(a => a.id == 100) 不会参数化 /// bool IsGenerateCommandParameterWithLambda { get; set; } ///