diff --git a/Examples/dbcontext_01/Program.cs b/Examples/dbcontext_01/Program.cs
index ef6e0446..0aa6a2a1 100644
--- a/Examples/dbcontext_01/Program.cs
+++ b/Examples/dbcontext_01/Program.cs
@@ -40,6 +40,8 @@ namespace dbcontext_01
static IFreeSql fsql;
public static void Main(string[] args)
{
+ var asse = typeof(SafeObjectPool.ObjectPool<>).Assembly;
+
fsql = new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|\dd2.db;Pooling=true;Max Pool Size=10")
.UseAutoSyncStructure(true)
diff --git a/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj b/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj
index f89b7f1c..a6ad8d13 100644
--- a/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj
+++ b/Extensions/FreeSql.Extensions.BaseEntity/FreeSql.Extensions.BaseEntity.csproj
@@ -2,7 +2,7 @@
netcoreapp31;netcoreapp21;net4.0;
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinBaseEntity 是一种极简单的 CodeFirst 开发方式,特别对单表或多表CRUD,利用继承节省了每个实体类的重复属性(创建时间、ID等字段),软件删除等功能,进行 crud 操作时不必时常考虑仓储的使用.
@@ -16,6 +16,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/Extensions/FreeSql.Extensions.EfCoreFluentApi/FreeSql.Extensions.EfCoreFluentApi.csproj b/Extensions/FreeSql.Extensions.EfCoreFluentApi/FreeSql.Extensions.EfCoreFluentApi.csproj
index 9f4d810b..fbb56c69 100644
--- a/Extensions/FreeSql.Extensions.EfCoreFluentApi/FreeSql.Extensions.EfCoreFluentApi.csproj
+++ b/Extensions/FreeSql.Extensions.EfCoreFluentApi/FreeSql.Extensions.EfCoreFluentApi.csproj
@@ -2,7 +2,7 @@
netstandard2.0
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinFreeSql 扩展包实现,使用 FluentApi 方式配置实体模型,使用习惯接近 EFCore,方便过渡.
@@ -16,6 +16,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj b/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj
index 956b41e4..f7efbbd0 100644
--- a/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj
+++ b/Extensions/FreeSql.Extensions.JsonMap/FreeSql.Extensions.JsonMap.csproj
@@ -2,7 +2,7 @@
netstandard2.0;net45;net40
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinFreeSql 扩展包,可实现实体类属性为对象时,以JSON形式映射存储.
@@ -16,6 +16,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
index 5b83a4fe..0d85dae8 100644
--- a/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
+++ b/Extensions/FreeSql.Extensions.LazyLoading/FreeSql.Extensions.LazyLoading.csproj
@@ -2,7 +2,7 @@
netstandard2.0;net45;net40
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinFreeSql 扩展包,可实现【延时加载】属性.
@@ -16,6 +16,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj
index 04c4d315..5986aba2 100644
--- a/Extensions/FreeSql.Generator/FreeSql.Generator.csproj
+++ b/Extensions/FreeSql.Generator/FreeSql.Generator.csproj
@@ -12,8 +12,11 @@
使用 FreeSql 快速生成数据库的实体类,安装:dotnet tool install -g FreeSql.Generatorhttps://github.com/2881099/FreeSqlhttps://github.com/2881099/FreeSql
- 1.2.0-preview1
+ 1.2.0-preview2FreeSql DbFirst 实体生成器
+ true
+ YeXiangQin.pfx
+ false
diff --git a/FreeSql.All/FreeSql.All.csproj b/FreeSql.All/FreeSql.All.csproj
index 36a40c21..edee1d5c 100644
--- a/FreeSql.All/FreeSql.All.csproj
+++ b/FreeSql.All/FreeSql.All.csproj
@@ -2,7 +2,7 @@
netstandard2.0;net45;net40
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinFreeSql 全家桶,懒人专用
@@ -15,6 +15,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/FreeSql.DbContext/FreeSql.DbContext.csproj b/FreeSql.DbContext/FreeSql.DbContext.csproj
index e2bf07d1..a56745a3 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.csproj
+++ b/FreeSql.DbContext/FreeSql.DbContext.csproj
@@ -2,7 +2,7 @@
netstandard2.0;netcoreapp31;netcoreapp22;netcoreapp21;net45;net40
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinFreeSql is the ORM in .NetCore, .NetFramework, And Xamarin. It supports Mysql, Postgresql, SqlServer, Oracle, Sqlite, Odbc, 达梦, And Access
@@ -15,6 +15,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/FreeSql.Repository/FreeSql.Repository.csproj b/FreeSql.Repository/FreeSql.Repository.csproj
index 5f0e98bb..e6a41407 100644
--- a/FreeSql.Repository/FreeSql.Repository.csproj
+++ b/FreeSql.Repository/FreeSql.Repository.csproj
@@ -2,7 +2,7 @@
netstandard2.0;netcoreapp31;netcoreapp22;netcoreapp21;net45;net40
- 1.2.0-preview1
+ 1.2.0-preview2YeXiangQinFreeSql Implementation of General Repository, Support MySql/SqlServer/PostgreSQL/Oracle/Sqlite/达梦/Access, and read/write separation、and split table.https://github.com/2881099/FreeSql/wiki/Repository
@@ -15,6 +15,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
diff --git a/FreeSql/FreeSql.csproj b/FreeSql/FreeSql.csproj
index 1c601af4..1a718b3b 100644
--- a/FreeSql/FreeSql.csproj
+++ b/FreeSql/FreeSql.csproj
@@ -2,7 +2,7 @@
netstandard2.0;net45;net40
- 1.2.0-preview1
+ 1.2.0-preview2trueYeXiangQinFreeSql is the ORM in .NetCore, .NetFramework, And Xamarin. It supports Mysql, Postgresql, SqlServer, Oracle, Sqlite, Odbc, 达梦, And Access
@@ -16,6 +16,9 @@
$(AssemblyName)truetrue
+ true
+ YeXiangQin.pfx
+ false
@@ -28,7 +31,7 @@
-
+
diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml
index 59e0a2ec..21df8587 100644
--- a/FreeSql/FreeSql.xml
+++ b/FreeSql/FreeSql.xml
@@ -722,7 +722,11 @@
- 是否生成命令参数化执行,针对 lambda 表达式解析
+ 是否生成命令参数化执行,针对 lambda 表达式解析
+ 注意:常量不会参数化,变量才会做参数化
+ var id = 100;
+ fsql.Select<T>().Where(a => a.id == id) 会参数化
+ fsql.Select<T>().Where(a => a.id == 100) 不会参数化
@@ -2135,7 +2139,7 @@
- 查询,ExecuteReader(dr => {}, "select * from user where age > @age", new { age = 25 })
+ 查询,ExecuteReader(dr => {}, "select * from user where age > ?age", new { age = 25 })
@@ -2149,7 +2153,7 @@
- 查询,ExecuteArray("select * from user where age > @age", new { age = 25 })
+ 查询,ExecuteArray("select * from user where age > ?age", new { age = 25 })
@@ -2164,7 +2168,7 @@
- 查询,ExecuteDataSet("select * from user where age > @age; select 2", new { age = 25 })
+ 查询,ExecuteDataSet("select * from user where age > ?age; select 2", new { age = 25 })
@@ -2179,7 +2183,7 @@
- 查询,ExecuteDataTable("select * from user where age > @age", new { age = 25 })
+ 查询,ExecuteDataTable("select * from user where age > ?age", new { age = 25 })
@@ -2195,7 +2199,7 @@
- 在【主库】执行,ExecuteNonQuery("delete from user where age > @age", new { age = 25 })
+ 在【主库】执行,ExecuteNonQuery("delete from user where age > ?age", new { age = 25 })
@@ -2211,7 +2215,7 @@
- 在【主库】执行,ExecuteScalar("select 1 from user where age > @age", new { age = 25 })
+ 在【主库】执行,ExecuteScalar("select 1 from user where age > ?age", new { age = 25 })
@@ -2219,7 +2223,7 @@
- 执行SQL返回对象集合,Query<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age", new SqlParameter { ParameterName = "age", Value = 25 })
@@ -2229,7 +2233,7 @@
- 执行SQL返回对象集合,Query<User>("select * from user where age > @age", new { age = 25 })
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age", new { age = 25 })
@@ -2238,7 +2242,7 @@
- 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
@@ -2248,7 +2252,7 @@
- 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new { age = 25 })
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new { age = 25 })
@@ -2266,7 +2270,7 @@
- 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 })
+ 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > ?age", new { age = 25 })
@@ -2280,7 +2284,7 @@
- 查询,ExecuteArrayAsync("select * from user where age > @age", new { age = 25 })
+ 查询,ExecuteArrayAsync("select * from user where age > ?age", new { age = 25 })
@@ -2295,7 +2299,7 @@
- 查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 })
+ 查询,ExecuteDataSetAsync("select * from user where age > ?age; select 2", new { age = 25 })
@@ -2310,7 +2314,7 @@
- 查询,ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 })
+ 查询,ExecuteDataTableAsync("select * from user where age > ?age", new { age = 25 })
@@ -2326,7 +2330,7 @@
- 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 })
+ 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > ?age", new { age = 25 })
@@ -2342,7 +2346,7 @@
- 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 })
+ 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > ?age", new { age = 25 })
@@ -2350,7 +2354,7 @@
- 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
+ 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > ?age", new SqlParameter { ParameterName = "age", Value = 25 })
@@ -2360,7 +2364,7 @@
- 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > @age", new { age = 25 })
+ 执行SQL返回对象集合,QueryAsync<User>("select * from user where age > ?age", new { age = 25 })
@@ -2369,7 +2373,7 @@
- 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
@@ -2379,7 +2383,7 @@
- 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new { age = 25 })
+ 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new { age = 25 })
@@ -2600,7 +2604,11 @@
- 是否生成命令参数化执行,针对 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/IAdo.cs b/FreeSql/Interface/IAdo.cs
index 57670ee0..7fccbfa2 100644
--- a/FreeSql/Interface/IAdo.cs
+++ b/FreeSql/Interface/IAdo.cs
@@ -68,7 +68,7 @@ namespace FreeSql
void ExecuteReader(DbTransaction transaction, Action readerHander, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
void ExecuteReader(DbConnection connection, DbTransaction transaction, Action readerHander, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 查询,ExecuteReader(dr => {}, "select * from user where age > @age", new { age = 25 })
+ /// 查询,ExecuteReader(dr => {}, "select * from user where age > ?age", new { age = 25 })
///
///
///
@@ -84,7 +84,7 @@ namespace FreeSql
object[][] ExecuteArray(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
object[][] ExecuteArray(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 查询,ExecuteArray("select * from user where age > @age", new { age = 25 })
+ /// 查询,ExecuteArray("select * from user where age > ?age", new { age = 25 })
///
///
///
@@ -101,7 +101,7 @@ namespace FreeSql
DataSet ExecuteDataSet(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
DataSet ExecuteDataSet(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 查询,ExecuteDataSet("select * from user where age > @age; select 2", new { age = 25 })
+ /// 查询,ExecuteDataSet("select * from user where age > ?age; select 2", new { age = 25 })
///
///
///
@@ -118,7 +118,7 @@ namespace FreeSql
DataTable ExecuteDataTable(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
DataTable ExecuteDataTable(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 查询,ExecuteDataTable("select * from user where age > @age", new { age = 25 })
+ /// 查询,ExecuteDataTable("select * from user where age > ?age", new { age = 25 })
///
///
///
@@ -136,7 +136,7 @@ namespace FreeSql
int ExecuteNonQuery(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
int ExecuteNonQuery(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 在【主库】执行,ExecuteNonQuery("delete from user where age > @age", new { age = 25 })
+ /// 在【主库】执行,ExecuteNonQuery("delete from user where age > ?age", new { age = 25 })
///
///
///
@@ -154,7 +154,7 @@ namespace FreeSql
object ExecuteScalar(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
object ExecuteScalar(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 在【主库】执行,ExecuteScalar("select 1 from user where age > @age", new { age = 25 })
+ /// 在【主库】执行,ExecuteScalar("select 1 from user where age > ?age", new { age = 25 })
///
///
///
@@ -164,7 +164,7 @@ namespace FreeSql
object ExecuteScalar(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
///
- /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age", new SqlParameter { ParameterName = "age", Value = 25 })
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > ?age", new SqlParameter { ParameterName = "age", Value = 25 })
///
///
///
@@ -175,7 +175,7 @@ namespace FreeSql
List Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
List Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age", new { age = 25 })
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > ?age", new { age = 25 })
///
///
///
@@ -186,7 +186,7 @@ namespace FreeSql
List Query(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null);
///
- /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new SqlParameter { ParameterName = "age", Value = 25 })
///
///
///
@@ -197,7 +197,7 @@ namespace FreeSql
(List, List) Query(DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
(List, List) Query(DbConnection connection, DbTransaction transaction, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 执行SQL返回对象集合,Query<User>("select * from user where age > @age; select * from address", new { age = 25 })
+ /// 执行SQL返回对象集合,Query<User>("select * from user where age > ?age; select * from address", new { age = 25 })
///
///
///
@@ -240,7 +240,7 @@ namespace FreeSql
Task ExecuteReaderAsync(DbTransaction transaction, Func readerHander, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
Task ExecuteReaderAsync(DbConnection connection, DbTransaction transaction, Func readerHander, CommandType cmdType, string cmdText, params DbParameter[] cmdParms);
///
- /// 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 })
+ /// 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > ?age", new { age = 25 })
///
///
///
@@ -256,7 +256,7 @@ namespace FreeSql
Task