From 22a6c3d93edde11c31927ff4c5c643fcd8aeca9f Mon Sep 17 00:00:00 2001 From: 28810 <28810@YEXIANGQIN> Date: Tue, 7 May 2019 20:20:38 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E8=B0=83=E6=95=B4=20=E5=91=BD=E5=90=8D?= =?UTF-8?q?=E7=A9=BA=E9=97=B4=EF=BC=8C=E5=BD=92=E7=BA=B3=20FreeSql.Interfa?= =?UTF-8?q?ce=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FreeSqlExtensions/CodeFirstExtensions.cs | 1 + FreeSql/Extensions/FreeSqlGlobalExtensions.cs | 2 +- FreeSql/FreeSql.xml | 1812 ++++++++--------- FreeSql/Generator/TemplateGenerator.cs | 1 + FreeSql/Interface/Curd/ISelect/ILinqToSql.cs | 29 + FreeSql/Interface/Curd/ISelect/ISelect0.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect1.cs | 26 +- FreeSql/Interface/Curd/ISelect/ISelect10.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect2.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect3.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect4.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect5.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect6.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect7.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect8.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelect9.cs | 2 +- FreeSql/Interface/Curd/ISelect/ISelectFrom.cs | 2 +- .../Interface/Curd/ISelect/ISelectGrouping.cs | 2 +- FreeSql/Interface/IAdo.cs | 2 +- FreeSql/Interface/IAop.cs | 2 +- FreeSql/Interface/ICache.cs | 2 +- FreeSql/Interface/ICodeFirst.cs | 2 +- FreeSql/Interface/IDbManage.cs | 57 - FreeSql/Interface/IFreeSql.cs | 1 + FreeSql/Interface/iDbFirst.cs | 2 +- FreeSql/Internal/CommonExpression.cs | 1 + .../CommonProvider/AdoProvider/AdoProvider.cs | 1 + .../Internal/CommonProvider/AopProvider.cs | 1 + .../Internal/CommonProvider/CacheProvider.cs | 3 +- .../SelectProvider/Select0Provider.cs | 3 +- .../SelectProvider/Select10Provider.cs | 3 +- .../SelectProvider/Select1Provider.cs | 3 +- .../SelectProvider/Select2Provider.cs | 3 +- .../SelectProvider/Select3Provider.cs | 3 +- .../SelectProvider/Select4Provider.cs | 3 +- .../SelectProvider/Select5Provider.cs | 3 +- .../SelectProvider/Select6Provider.cs | 3 +- .../SelectProvider/Select7Provider.cs | 3 +- .../SelectProvider/Select8Provider.cs | 3 +- .../SelectProvider/Select9Provider.cs | 3 +- .../SelectProvider/SelectGroupingProvider.cs | 3 +- FreeSql/Internal/CommonUtils.cs | 1 + FreeSql/MySql/Curd/MySqlSelect.cs | 3 +- FreeSql/MySql/MySqlAdo/MySqlAdo.cs | 3 +- FreeSql/MySql/MySqlCodeFirst.cs | 1 + FreeSql/MySql/MySqlDbFirst.cs | 1 + FreeSql/MySql/MySqlExtensions.cs | 2 +- FreeSql/MySql/MySqlProvider.cs | 3 +- FreeSql/Oracle/Curd/OracleSelect.cs | 3 +- FreeSql/Oracle/OracleAdo/OracleAdo.cs | 3 +- FreeSql/Oracle/OracleCodeFirst.cs | 1 + FreeSql/Oracle/OracleDbFirst.cs | 1 + FreeSql/Oracle/OracleExtensions.cs | 2 +- FreeSql/Oracle/OracleProvider.cs | 3 +- FreeSql/PostgreSQL/Curd/PostgreSQLSelect.cs | 3 +- .../PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs | 3 +- FreeSql/PostgreSQL/PostgreSQLCodeFirst.cs | 1 + FreeSql/PostgreSQL/PostgreSQLDbFirst.cs | 1 + FreeSql/PostgreSQL/PostgreSQLExtensions.cs | 2 +- FreeSql/PostgreSQL/PostgreSQLProvider.cs | 3 +- FreeSql/SqlServer/Curd/SqlServerSelect.cs | 3 +- .../SqlServer/SqlServerAdo/SqlServerAdo.cs | 3 +- FreeSql/SqlServer/SqlServerCodeFirst.cs | 1 + FreeSql/SqlServer/SqlServerDbFirst.cs | 1 + FreeSql/SqlServer/SqlServerExtensions.cs | 2 +- FreeSql/SqlServer/SqlServerProvider.cs | 3 +- FreeSql/Sqlite/Curd/SqliteSelect.cs | 3 +- FreeSql/Sqlite/SqliteAdo/SqliteAdo.cs | 3 +- FreeSql/Sqlite/SqliteCodeFirst.cs | 1 + FreeSql/Sqlite/SqliteExtensions.cs | 2 +- FreeSql/Sqlite/SqliteProvider.cs | 3 +- 71 files changed, 1033 insertions(+), 1037 deletions(-) create mode 100644 FreeSql/Interface/Curd/ISelect/ILinqToSql.cs delete mode 100644 FreeSql/Interface/IDbManage.cs diff --git a/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs b/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs index 9c480405..e9ce6964 100644 --- a/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs +++ b/Examples/efcore_to_freesql/FreeSqlExtensions/CodeFirstExtensions.cs @@ -1,4 +1,5 @@ using FreeSql; +using FreeSql.Interface; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata; using System; diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs index 9ac28e50..98d1d050 100644 --- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs +++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs @@ -8,7 +8,7 @@ using System.Drawing; using System.Linq; using System.Reflection; -public static class FreeSqlGlobalExtensions { +public static partial class FreeSqlGlobalExtensions { public static FreeSql.ISelect Queryable(this IFreeSql freesql) where T : class => freesql.Select(); diff --git a/FreeSql/FreeSql.xml b/FreeSql/FreeSql.xml index 79a22689..61eec5f6 100644 --- a/FreeSql/FreeSql.xml +++ b/FreeSql/FreeSql.xml @@ -682,41 +682,66 @@ - + + + 【linq to sql】专用方法,不建议直接使用 + + + + + 【linq to sql】专用方法,不建议直接使用 + + + + + 【linq to sql】专用方法,不建议直接使用 + + + + + 【linq to sql】专用方法,不建议直接使用 + + + + + 【linq to sql】专用方法,不建议直接使用 + + + 指定事务对象 - + 指定连接对象 - + 审核或跟踪 ToList 即将返回的数据 - + 执行SQL查询,返回 DataTable - + 执行SQL查询,返回 T1 实体所有字段的记录,记录不存在时返回 Count 为 0 的列表 false: 返回 2级 LeftJoin/InnerJoin/RightJoin 对象;true: 返回所有 LeftJoin/InnerJoin/RightJoin 的导航数据 - + 执行SQL查询,返回 field 指定字段的记录,并以元组或基础类型(int,string,long)接收,记录不存在时返回 Count 为 0 的列表 @@ -724,65 +749,65 @@ - + 执行SQL查询,返回 T1 实体所有字段的第一条记录,记录不存在时返回 null - + 执行SQL查询,返回 T1 实体所有字段的第一条记录,记录不存在时返回 null - + 设置表名规则,可用于分库/分表,参数1:实体类型;参数2:默认表名;返回值:新表名; - + 动态Type,在使用 Select<object> 后使用本方法,指定实体类型 - + 返回即将执行的SQL语句 指定字段 - + 执行SQL查询,是否有记录 - + 查询的记录数量 - + 查询的记录数量,以参数out形式返回 返回的变量 - + 指定从主库查询(默认查询从库) - + 缓存查询结果 @@ -790,28 +815,28 @@ 缓存key - + 左联查询,使用导航属性自动生成SQL 表达式 - + 联接查询,使用导航属性自动生成SQL 表达式 - + 右联查询,使用导航属性自动生成SQL 表达式 - + 左联查询,指定关联的实体类型 @@ -819,7 +844,7 @@ 表达式 - + 联接查询,指定关联的实体类型 @@ -827,7 +852,7 @@ 表达式 - + 右联查询,指定关联的实体类型 @@ -835,7 +860,7 @@ 表达式 - + 左联查询,使用原生sql语法,LeftJoin("type b on b.id = a.id and b.clicks > ?clicks", new { clicks = 1 }) @@ -843,7 +868,7 @@ 参数 - + 联接查询,使用原生sql语法,InnerJoin("type b on b.id = a.id and b.clicks > ?clicks", new { clicks = 1 }) @@ -851,7 +876,7 @@ 参数 - + 右联查询,使用原生sql语法,RightJoin("type b on b.id = a.id and b.clicks > ?clicks", new { clicks = 1 }) @@ -859,7 +884,7 @@ 参数 - + 原生sql语法条件,Where("id = ?id", new { id = 1 }) @@ -867,7 +892,7 @@ 参数 - + 原生sql语法条件,WhereIf(true, "id = ?id", new { id = 1 }) @@ -876,7 +901,7 @@ 参数 - + 按原生sql语法分组,GroupBy("concat(name, ?cc)", new { cc = 1 }) @@ -884,7 +909,7 @@ 参数 - + 按原生sql语法聚合条件过滤,Having("count(name) = ?cc", new { cc = 1 }) @@ -892,7 +917,7 @@ 参数 - + 按原生sql语法排序,OrderBy("count(name) + ?cc", new { cc = 1 }) @@ -900,35 +925,35 @@ 参数 - + 查询向后偏移行数 - + 查询向后偏移行数 行数 - + 查询多少条数据 - + 查询多少条数据 - + 分页 @@ -936,12 +961,807 @@ 每页多少 - + 查询数据前,去重 + + + 查询条件,Where(a => a.Id > 10),支持导航对象查询,Where(a => a.Author.Email == "2881099@qq.com") + + lambda表达式 + + + + + 查询条件,Where(true, a => a.Id > 10),支导航对象查询,Where(true, a => a.Author.Email == "2881099@qq.com") + + true 时生效 + lambda表达式 + + + + + 按列排序,OrderBy(a => a.Time) + + + + + + + + 按列倒向排序,OrderByDescending(a => a.Time) + + 列 + + + + + 按聚合条件过滤,Where(a => a.Count() > 10) + + lambda表达式 + + + + + 按列排序,OrderBy(a => a.Time) + + + + + + + + 按列倒向排序,OrderByDescending(a => a.Time) + + 列 + + + + + 执行SQL查询,返回指定字段的记录,记录不存在时返回 Count 为 0 的列表 + + 返回类型 + 选择列 + + + + + 【linq to sql】专用方法,不建议直接使用 + + + + + 返回即将执行的SQL语句 + + 返回类型 + 选择列 + + + + + 查询向后偏移行数 + + + + + + + 查询向后偏移行数 + + 行数 + + + + + 查询多少条数据 + + + + + + + 查询多少条数据 + + + + + + + 分页 + + 第几页 + 每页多少 + + + + + 分组的数据 + + + + + 记录总数 + + + + + + 求和 + + + + + + + + 平均值 + + + + + + + + 最大值 + + + + + + + + 最小值 + + + + + + + 所有元素 + + + + + 主库连接池 + + + + + 从库连接池 + + + + + 监视数据库命令对象(执行前,调试) + + + + + 监视数据库命令对象(执行后,用于监视执行性能) + + + + + 数据库类型 + + + + + 开启事务(不支持异步),60秒未执行完将自动提交 + + 事务体 () => {} + + + + 开启事务(不支持异步) + + 事务体 () => {} + 超时,未执行完将自动提交 + + + + 当前线程的事务 + + + + + 事务完成前预删除缓存 + + + + + + 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】 + + + + + + + + + 查询,ExecuteReader(dr => {}, "select * from user where age > @age", new { age = 25 }) + + + + + + + 查询 + + + + + + + 查询,ExecuteArray("select * from user where age > @age", new { age = 25 }) + + + + + + + + 查询 + + + + + + + 查询,ExecuteDataSet("select * from user where age > @age; select 2", new { age = 25 }) + + + + + + + + 查询 + + + + + + + 查询,ExecuteDataTable("select * from user where age > @age", new { age = 25 }) + + + + + + + + 在【主库】执行 + + + + + + + + 在【主库】执行,ExecuteNonQuery("delete from user where age > @age", new { age = 25 }) + + + + + + + + 在【主库】执行 + + + + + + + + 在【主库】执行,ExecuteScalar("select 1 from user where age > @age", new { age = 25 }) + + + + + + + + 执行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 { age = 25 }) + + + + + + + + + 执行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 { age = 25 }) + + + + + + + + + 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】 + + + + + + + + + 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 }) + + + + + + + 查询 + + + + + + + 查询,ExecuteArrayAsync("select * from user where age > @age", new { age = 25 }) + + + + + + + + 查询 + + + + + + + 查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 }) + + + + + + + + 查询 + + + + + + + 查询,ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 }) + + + + + + + + 在【主库】执行 + + + + + + + + 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 }) + + + + + + + + 在【主库】执行 + + + + + + + + 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 }) + + + + + + + + 执行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 { age = 25 }) + + + + + + + + + 执行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 { age = 25 }) + + + + + + + + + 监控 ToList 返回的的数据,用于拦截重新装饰 + + + + + 监视 Where,包括 select/update/delete,可控制使上层不被执行。 + + + + + 可自定义解析表达式 + + + + + 自定义实体的配置,方便和多个 ORM 共同使用 + + + + + 自定义实体的属性配置,方便和多个 ORM 共同使用 + + + + + 增删查改,执行命令之前触发 + + + + + 增删查改,执行命令完成后触发 + + + + + CodeFirst迁移,执行之前触发 + + + + + CodeFirst迁移,执行完成触发 + + + + + 缓存数据时序列化方法,若无设置则默认使用 Json.net + + + + + 获取缓存数据时反序列化方法,若无设置则默认使用 Json.net + + + + + 缓存可序列化数据 + + + 缓存键 + 可序列化数据 + 缓存秒数,<=0时永久缓存 + + + + 循环或批量获取缓存数据 + + + + + + + + 循环或批量获取缓存数据 + + + + + + + 循环或批量删除缓存键 + + 缓存键[数组] + + + + 缓存壳 + + 缓存类型 + 缓存键 + 缓存秒数 + 获取源数据的函数 + + + + + 缓存壳(哈希表) + + 缓存类型 + 缓存键 + 字段 + 缓存秒数 + 获取源数据的函数 + + + + + 缓存可序列化数据 + + + 缓存键 + 可序列化数据 + 缓存秒数,<=0时永久缓存 + + + + 循环或批量获取缓存数据 + + + + + + + + 循环或批量获取缓存数据 + + + + + + + 循环或批量删除缓存键 + + 缓存键[数组] + + + + 缓存壳 + + 缓存类型 + 缓存键 + 缓存秒数 + 获取源数据的函数 + + + + + 缓存壳(哈希表) + + 缓存类型 + 缓存键 + 字段 + 缓存秒数 + 获取源数据的函数 + + + + + 【开发环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改 + + + + + 转小写同步结构 + + + + + 转大写同步结构 + + + + + 使用数据库的主键和自增,适用 DbFirst 模式,无须在实体类型上设置 [Column(IsPrimary)] 或者 ConfigEntity。此功能目前可用于 mysql/sqlserver/postgresql。 + + + + + 不使用命令参数化执行,针对 Insert/Update + + + + + 延时加载导航属性对象,导航属性需要声明 virtual + + + + + 将实体类型与数据库对比,返回DDL语句 + + + + + + + 将实体类型集合与数据库对比,返回DDL语句 + + + + + + + 同步实体类型到数据库 + + + + + + + 同步实体类型集合到数据库 + + + + + + + 根据 System.Type 获取数据库信息 + + + + + + + 在外部配置实体的特性 + + + + + + + + 在外部配置实体的特性 + + + + + + + + 获取在外部配置实体的特性 + + + 未使用ConfigEntity配置时,返回null + + + + 获取实体类核心配置 + + + + + + + 获取所有数据库 + + + + + + 获取指定数据库的表信息,包括表、列详情、主键、唯一键、索引、外键、备注 + + + + + + + 获取数据库枚举类型int值 + + + + + + + 获取c#转换,(int)、(long) + + + + + + + 获取c#值 + + + + + + + 获取c#类型,int、long + + + + + + + 获取c#类型对象 + + + + + + + 获取ado.net读取方法, GetBoolean、GetInt64 + + + + + + + 序列化 + + + + + + + 反序列化 + + + + + + + 获取数据库枚举类型,适用 PostgreSQL + + + + 执行SQL查询,是否有记录 @@ -963,31 +1783,6 @@ 选择列 - - - 【linq to sql】专用方法,不建议直接使用 - - - - - 【linq to sql】专用方法,不建议直接使用 - - - - - 【linq to sql】专用方法,不建议直接使用 - - - - - 【linq to sql】专用方法,不建议直接使用 - - - - - 【linq to sql】专用方法,不建议直接使用 - - 执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值 @@ -1012,7 +1807,7 @@ 选择列 - + 执行SQL查询,返回指定字段的聚合结果 @@ -1059,7 +1854,7 @@ 别名 - + 多表查询 @@ -1067,7 +1862,7 @@ - + 多表查询 @@ -1076,7 +1871,7 @@ - + 多表查询 @@ -1086,7 +1881,7 @@ - + 多表查询 @@ -1097,7 +1892,7 @@ - + 多表查询 @@ -1109,7 +1904,7 @@ - + 多表查询 @@ -1122,7 +1917,7 @@ - + 多表查询 @@ -1136,7 +1931,7 @@ - + 多表查询 @@ -1151,7 +1946,7 @@ - + 多表查询 @@ -1256,162 +2051,6 @@ - - - 查询条件,Where(a => a.Id > 10),支持导航对象查询,Where(a => a.Author.Email == "2881099@qq.com") - - lambda表达式 - - - - - 查询条件,Where(true, a => a.Id > 10),支导航对象查询,Where(true, a => a.Author.Email == "2881099@qq.com") - - true 时生效 - lambda表达式 - - - - - 按列排序,OrderBy(a => a.Time) - - - - - - - - 按列倒向排序,OrderByDescending(a => a.Time) - - 列 - - - - - 按聚合条件过滤,Where(a => a.Count() > 10) - - lambda表达式 - - - - - 按列排序,OrderBy(a => a.Time) - - - - - - - - 按列倒向排序,OrderByDescending(a => a.Time) - - 列 - - - - - 执行SQL查询,返回指定字段的记录,记录不存在时返回 Count 为 0 的列表 - - 返回类型 - 选择列 - - - - - 【linq to sql】专用方法,不建议直接使用 - - - - - 返回即将执行的SQL语句 - - 返回类型 - 选择列 - - - - - 查询向后偏移行数 - - - - - - - 查询向后偏移行数 - - 行数 - - - - - 查询多少条数据 - - - - - - - 查询多少条数据 - - - - - - - 分页 - - 第几页 - 每页多少 - - - - - 分组的数据 - - - - - 记录总数 - - - - - - 求和 - - - - - - - - 平均值 - - - - - - - - 最大值 - - - - - - - - 最小值 - - - - - - - 所有元素 - - 指定事务对象 @@ -1576,362 +2215,6 @@ - - - 主库连接池 - - - - - 从库连接池 - - - - - 监视数据库命令对象(执行前,调试) - - - - - 监视数据库命令对象(执行后,用于监视执行性能) - - - - - 数据库类型 - - - - - 开启事务(不支持异步),60秒未执行完将自动提交 - - 事务体 () => {} - - - - 开启事务(不支持异步) - - 事务体 () => {} - 超时,未执行完将自动提交 - - - - 当前线程的事务 - - - - - 事务完成前预删除缓存 - - - - - - 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】 - - - - - - - - - 查询,ExecuteReader(dr => {}, "select * from user where age > @age", new { age = 25 }) - - - - - - - 查询 - - - - - - - 查询,ExecuteArray("select * from user where age > @age", new { age = 25 }) - - - - - - - - 查询 - - - - - - - 查询,ExecuteDataSet("select * from user where age > @age; select 2", new { age = 25 }) - - - - - - - - 查询 - - - - - - - 查询,ExecuteDataTable("select * from user where age > @age", new { age = 25 }) - - - - - - - - 在【主库】执行 - - - - - - - - 在【主库】执行,ExecuteNonQuery("delete from user where age > @age", new { age = 25 }) - - - - - - - - 在【主库】执行 - - - - - - - - 在【主库】执行,ExecuteScalar("select 1 from user where age > @age", new { age = 25 }) - - - - - - - - 执行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 { age = 25 }) - - - - - - - - - 执行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 { age = 25 }) - - - - - - - - - 查询,若使用读写分离,查询【从库】条件cmdText.StartsWith("SELECT "),否则查询【主库】 - - - - - - - - - 查询,ExecuteReaderAsync(dr => {}, "select * from user where age > @age", new { age = 25 }) - - - - - - - 查询 - - - - - - - 查询,ExecuteArrayAsync("select * from user where age > @age", new { age = 25 }) - - - - - - - - 查询 - - - - - - - 查询,ExecuteDataSetAsync("select * from user where age > @age; select 2", new { age = 25 }) - - - - - - - - 查询 - - - - - - - 查询,ExecuteDataTableAsync("select * from user where age > @age", new { age = 25 }) - - - - - - - - 在【主库】执行 - - - - - - - - 在【主库】执行,ExecuteNonQueryAsync("delete from user where age > @age", new { age = 25 }) - - - - - - - - 在【主库】执行 - - - - - - - - 在【主库】执行,ExecuteScalarAsync("select 1 from user where age > @age", new { age = 25 }) - - - - - - - - 执行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 { age = 25 }) - - - - - - - - - 执行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 { age = 25 }) - - - - - - - - - 监控 ToList 返回的的数据,用于拦截重新装饰 - - - - - 监视 Where,包括 select/update/delete,可控制使上层不被执行。 - - - - - 可自定义解析表达式 - - - - - 自定义实体的配置,方便和多个 ORM 共同使用 - - - - - 自定义实体的属性配置,方便和多个 ORM 共同使用 - - - - - 增删查改,执行命令之前触发 - - - - - 增删查改,执行命令完成后触发 - - - - - CodeFirst迁移,执行之前触发 - - - - - CodeFirst迁移,执行完成触发 - - 可重新装饰的引用数据 @@ -2057,289 +2340,6 @@ 耗时(单位:毫秒) - - - 缓存数据时序列化方法,若无设置则默认使用 Json.net - - - - - 获取缓存数据时反序列化方法,若无设置则默认使用 Json.net - - - - - 缓存可序列化数据 - - - 缓存键 - 可序列化数据 - 缓存秒数,<=0时永久缓存 - - - - 循环或批量获取缓存数据 - - - - - - - - 循环或批量获取缓存数据 - - - - - - - 循环或批量删除缓存键 - - 缓存键[数组] - - - - 缓存壳 - - 缓存类型 - 缓存键 - 缓存秒数 - 获取源数据的函数 - - - - - 缓存壳(哈希表) - - 缓存类型 - 缓存键 - 字段 - 缓存秒数 - 获取源数据的函数 - - - - - 缓存可序列化数据 - - - 缓存键 - 可序列化数据 - 缓存秒数,<=0时永久缓存 - - - - 循环或批量获取缓存数据 - - - - - - - - 循环或批量获取缓存数据 - - - - - - - 循环或批量删除缓存键 - - 缓存键[数组] - - - - 缓存壳 - - 缓存类型 - 缓存键 - 缓存秒数 - 获取源数据的函数 - - - - - 缓存壳(哈希表) - - 缓存类型 - 缓存键 - 字段 - 缓存秒数 - 获取源数据的函数 - - - - - 【开发环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改 - - - - - 转小写同步结构 - - - - - 转大写同步结构 - - - - - 使用数据库的主键和自增,适用 DbFirst 模式,无须在实体类型上设置 [Column(IsPrimary)] 或者 ConfigEntity。此功能目前可用于 mysql/sqlserver/postgresql。 - - - - - 不使用命令参数化执行,针对 Insert/Update - - - - - 延时加载导航属性对象,导航属性需要声明 virtual - - - - - 将实体类型与数据库对比,返回DDL语句 - - - - - - - 将实体类型集合与数据库对比,返回DDL语句 - - - - - - - 同步实体类型到数据库 - - - - - - - 同步实体类型集合到数据库 - - - - - - - 根据 System.Type 获取数据库信息 - - - - - - - 在外部配置实体的特性 - - - - - - - - 在外部配置实体的特性 - - - - - - - - 获取在外部配置实体的特性 - - - 未使用ConfigEntity配置时,返回null - - - - 获取实体类核心配置 - - - - - - - 获取所有数据库 - - - - - - 获取指定数据库的表信息,包括表、列详情、主键、唯一键、索引、外键、备注 - - - - - - - 获取数据库枚举类型int值 - - - - - - - 获取c#转换,(int)、(long) - - - - - - - 获取c#值 - - - - - - - 获取c#类型,int、long - - - - - - - 获取c#类型对象 - - - - - - - 获取ado.net读取方法, GetBoolean、GetInt64 - - - - - - - 序列化 - - - - - - - 反序列化 - - - - - - - 获取数据库枚举类型,适用 PostgreSQL - - - - 中间表,多对多 @@ -2361,6 +2361,46 @@ + + + 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 + + + + + + + + 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 + + + + + + + + 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 + + + + + + + + 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 + + + + + + + + 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 + + + + + 生成类似Mongodb的ObjectId有序、不重复Guid @@ -2489,22 +2529,6 @@ 经纬坐标2 返回距离(单位:米) - - - 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 - - - - - - - - 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 - - - - - 测量两个经纬度的距离,返回单位:米 @@ -2528,29 +2552,5 @@ 1010101010 - - - 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 - - - - - - - - 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 - - - - - - - - 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 - - - - - diff --git a/FreeSql/Generator/TemplateGenerator.cs b/FreeSql/Generator/TemplateGenerator.cs index d97c255e..deb4b811 100644 --- a/FreeSql/Generator/TemplateGenerator.cs +++ b/FreeSql/Generator/TemplateGenerator.cs @@ -1,4 +1,5 @@ using FreeSql.DatabaseModel; +using FreeSql.Interface; using System; using System.Collections.Generic; using System.IO; diff --git a/FreeSql/Interface/Curd/ISelect/ILinqToSql.cs b/FreeSql/Interface/Curd/ISelect/ILinqToSql.cs new file mode 100644 index 00000000..3879d942 --- /dev/null +++ b/FreeSql/Interface/Curd/ISelect/ILinqToSql.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq.Expressions; +using System.Text; + +namespace FreeSql.Interface { + public interface ILinqToSql where T1 : class { + /// + /// 【linq to sql】专用方法,不建议直接使用 + /// + ISelect Select(Expression> select) where TReturn : class; + /// + /// 【linq to sql】专用方法,不建议直接使用 + /// + ISelect Join(ISelect inner, Expression> outerKeySelector, Expression> innerKeySelector, Expression> resultSelector) where TInner : class where TResult : class; + /// + /// 【linq to sql】专用方法,不建议直接使用 + /// + ISelect GroupJoin(ISelect inner, Expression> outerKeySelector, Expression> innerKeySelector, Expression, TResult>> resultSelector) where TInner : class where TResult : class; + /// + /// 【linq to sql】专用方法,不建议直接使用 + /// + ISelect DefaultIfEmpty(); + /// + /// 【linq to sql】专用方法,不建议直接使用 + /// + ISelect SelectMany(Expression>> collectionSelector, Expression> resultSelector) where TCollection : class where TResult : class; + } +} diff --git a/FreeSql/Interface/Curd/ISelect/ISelect0.cs b/FreeSql/Interface/Curd/ISelect/ISelect0.cs index 562d26ed..0f417ffc 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect0.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect0.cs @@ -6,7 +6,7 @@ using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect0 { /// diff --git a/FreeSql/Interface/Curd/ISelect/ISelect1.cs b/FreeSql/Interface/Curd/ISelect/ISelect1.cs index f9130f86..80c69918 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect1.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect1.cs @@ -1,11 +1,12 @@ -using System; +using FreeSql.Interface; +using System; using System.Collections.Generic; using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; namespace FreeSql { - public interface ISelect : ISelect0, T1> where T1 : class { + public interface ISelect : ISelect0, T1>, Interface.ILinqToSql where T1 : class { /// /// 执行SQL查询,是否有记录 @@ -31,27 +32,6 @@ namespace FreeSql { List ToList(Expression> select); Task> ToListAsync(Expression> select); - /// - /// 【linq to sql】专用方法,不建议直接使用 - /// - ISelect Select(Expression> select) where TReturn : class; - /// - /// 【linq to sql】专用方法,不建议直接使用 - /// - ISelect Join(ISelect inner, Expression> outerKeySelector, Expression> innerKeySelector, Expression> resultSelector) where TInner : class where TResult : class; - /// - /// 【linq to sql】专用方法,不建议直接使用 - /// - ISelect GroupJoin(ISelect inner, Expression> outerKeySelector, Expression> innerKeySelector, Expression, TResult>> resultSelector) where TInner : class where TResult : class; - /// - /// 【linq to sql】专用方法,不建议直接使用 - /// - ISelect DefaultIfEmpty(); - /// - /// 【linq to sql】专用方法,不建议直接使用 - /// - ISelect SelectMany(Expression>> collectionSelector, Expression> resultSelector) where TCollection : class where TResult : class; - /// /// 执行SQL查询,返回指定字段的记录的第一条记录,记录不存在时返回 TReturn 默认值 /// diff --git a/FreeSql/Interface/Curd/ISelect/ISelect10.cs b/FreeSql/Interface/Curd/ISelect/ISelect10.cs index 8f2f7d5b..fe9c60d9 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect10.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect10.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class where T10 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect2.cs b/FreeSql/Interface/Curd/ISelect/ISelect2.cs index aff7f5e2..ba74ff59 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect2.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect2.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect3.cs b/FreeSql/Interface/Curd/ISelect/ISelect3.cs index 0d965e21..010b7217 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect3.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect3.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect4.cs b/FreeSql/Interface/Curd/ISelect/ISelect4.cs index d662d788..35b299ee 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect4.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect4.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect5.cs b/FreeSql/Interface/Curd/ISelect/ISelect5.cs index ffcf4294..1e9dde5b 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect5.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect5.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect6.cs b/FreeSql/Interface/Curd/ISelect/ISelect6.cs index 30ebba85..d45aa0b7 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect6.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect6.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect7.cs b/FreeSql/Interface/Curd/ISelect/ISelect7.cs index 21631412..602fc256 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect7.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect7.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect8.cs b/FreeSql/Interface/Curd/ISelect/ISelect8.cs index e30882f8..11801277 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect8.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect8.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelect9.cs b/FreeSql/Interface/Curd/ISelect/ISelect9.cs index d3c827ca..78f2aa42 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelect9.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelect9.cs @@ -4,7 +4,7 @@ using System.Data; using System.Linq.Expressions; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelect : ISelect0, T1> where T1 : class where T2 : class where T3 : class where T4 : class where T5 : class where T6 : class where T7 : class where T8 : class where T9 : class { bool Any(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelectFrom.cs b/FreeSql/Interface/Curd/ISelect/ISelectFrom.cs index 9150034e..bcf8d9e4 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelectFrom.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelectFrom.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Linq.Expressions; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelectFromExpression where T1 : class { ISelectFromExpression LeftJoin(Expression> exp); diff --git a/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs b/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs index 17c8ec0f..08912adb 100644 --- a/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs +++ b/FreeSql/Interface/Curd/ISelect/ISelectGrouping.cs @@ -4,7 +4,7 @@ using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ISelectGrouping { /// /// 按聚合条件过滤,Where(a => a.Count() > 10) diff --git a/FreeSql/Interface/IAdo.cs b/FreeSql/Interface/IAdo.cs index 5f2263b1..25177899 100644 --- a/FreeSql/Interface/IAdo.cs +++ b/FreeSql/Interface/IAdo.cs @@ -7,7 +7,7 @@ using System.Data.Common; using System.Text; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public partial interface IAdo { /// /// 主库连接池 diff --git a/FreeSql/Interface/IAop.cs b/FreeSql/Interface/IAop.cs index 6fb82996..282817fd 100644 --- a/FreeSql/Interface/IAop.cs +++ b/FreeSql/Interface/IAop.cs @@ -7,7 +7,7 @@ using System.Diagnostics; using System.Linq.Expressions; using System.Reflection; -namespace FreeSql { +namespace FreeSql.Interface { public interface IAop { /// diff --git a/FreeSql/Interface/ICache.cs b/FreeSql/Interface/ICache.cs index 49bbbf0c..c084d5a3 100644 --- a/FreeSql/Interface/ICache.cs +++ b/FreeSql/Interface/ICache.cs @@ -1,7 +1,7 @@ using System; using System.Threading.Tasks; -namespace FreeSql { +namespace FreeSql.Interface { public interface ICache { /// diff --git a/FreeSql/Interface/ICodeFirst.cs b/FreeSql/Interface/ICodeFirst.cs index 5e0c06dd..fb163630 100644 --- a/FreeSql/Interface/ICodeFirst.cs +++ b/FreeSql/Interface/ICodeFirst.cs @@ -2,7 +2,7 @@ using FreeSql.Internal.Model; using System; -namespace FreeSql { +namespace FreeSql.Interface { public interface ICodeFirst { /// diff --git a/FreeSql/Interface/IDbManage.cs b/FreeSql/Interface/IDbManage.cs deleted file mode 100644 index fa7a06a5..00000000 --- a/FreeSql/Interface/IDbManage.cs +++ /dev/null @@ -1,57 +0,0 @@ -//using FreeSql.DatabaseModel; -//using System; -//using System.Collections.Generic; -//using System.Text; - -//namespace FreeSql { -// public interface IDbManage { - -// /// -// /// 判断表是否存在 -// /// -// /// 表名 -// /// -// bool ExistsTable(string name); -// /// -// /// 判断列是否存在 -// /// -// /// 表名 -// /// 列名 -// /// -// bool ExistsColumn(string table, string column); - -// /// -// /// 判断视图是否存在 -// /// -// /// 视图名 -// /// -// bool ExistsView(string name); -// /// -// /// 判断列是否存在 -// /// -// /// 视图名 -// /// 列名 -// /// -// bool ExistsColumnByView(string view, string column); - -// /// -// /// 获取表信息,包括表、列详情、主键、唯一键、索引、备注(注意:本方法不返回外键) -// /// -// /// 表名 -// /// -// DbTableInfo GetTableInfo(string name); -// /// -// /// 获取视图信息,包括表、列详情 -// /// -// /// 视图名 -// /// -// DbTableInfo GetViewInfo(string name); - -// /// -// /// 获取指定数据库的表信息,包括表、列详情、主键、唯一键、索引、外键、备注 -// /// -// /// -// /// -// List GetTablesByDatabase(params string[] database); -// } -//} diff --git a/FreeSql/Interface/IFreeSql.cs b/FreeSql/Interface/IFreeSql.cs index 0350a8f3..07fec146 100644 --- a/FreeSql/Interface/IFreeSql.cs +++ b/FreeSql/Interface/IFreeSql.cs @@ -1,4 +1,5 @@ using FreeSql; +using FreeSql.Interface; using System; using System.Collections.Generic; diff --git a/FreeSql/Interface/iDbFirst.cs b/FreeSql/Interface/iDbFirst.cs index 2aa495a8..69eca66d 100644 --- a/FreeSql/Interface/iDbFirst.cs +++ b/FreeSql/Interface/iDbFirst.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; -namespace FreeSql { +namespace FreeSql.Interface { public interface IDbFirst { /// diff --git a/FreeSql/Internal/CommonExpression.cs b/FreeSql/Internal/CommonExpression.cs index 9003906f..96b0d9d1 100644 --- a/FreeSql/Internal/CommonExpression.cs +++ b/FreeSql/Internal/CommonExpression.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Linq.Expressions; using System.Reflection; using System.Text; +using FreeSql.Interface; namespace FreeSql.Internal { internal abstract class CommonExpression { diff --git a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs index d6ae51a8..755d2659 100644 --- a/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs +++ b/FreeSql/Internal/CommonProvider/AdoProvider/AdoProvider.cs @@ -9,6 +9,7 @@ using System.Diagnostics; using System.Linq; using System.Text; using System.Reflection; +using FreeSql.Interface; namespace FreeSql.Internal.CommonProvider { abstract partial class AdoProvider : IAdo, IDisposable { diff --git a/FreeSql/Internal/CommonProvider/AopProvider.cs b/FreeSql/Internal/CommonProvider/AopProvider.cs index f7a8faf7..86eb1641 100644 --- a/FreeSql/Internal/CommonProvider/AopProvider.cs +++ b/FreeSql/Internal/CommonProvider/AopProvider.cs @@ -1,4 +1,5 @@  +using FreeSql.Interface; using System; using System.Collections.Generic; using System.Linq.Expressions; diff --git a/FreeSql/Internal/CommonProvider/CacheProvider.cs b/FreeSql/Internal/CommonProvider/CacheProvider.cs index 4bbda7da..9bb22ee2 100644 --- a/FreeSql/Internal/CommonProvider/CacheProvider.cs +++ b/FreeSql/Internal/CommonProvider/CacheProvider.cs @@ -1,4 +1,5 @@ -using Microsoft.Extensions.Caching.Distributed; +using FreeSql.Interface; +using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs index 175aced0..3559c9c3 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select0Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Concurrent; using System.Collections.Generic; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs index 71adbbc1..521577f8 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select10Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs index 2f5cdd11..c331e17f 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select1Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs index 21b124a3..b92c3841 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select2Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs index add6d4bf..3f732d0e 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select3Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs index 358015ad..0434ff21 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select4Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs index c42d5e59..8b1a353e 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select5Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs index 497ee66f..00a8a76d 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select6Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs index 75c70ea4..45def594 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select7Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs index 1abc8e53..8909f288 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select8Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs index 64b8e466..4b736e9c 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/Select9Provider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Data; diff --git a/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs b/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs index 075235b7..8f4236bd 100644 --- a/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs +++ b/FreeSql/Internal/CommonProvider/SelectProvider/SelectGroupingProvider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal.Model; +using FreeSql.Interface; +using FreeSql.Internal.Model; using System; using System.Collections.Generic; using System.Linq; diff --git a/FreeSql/Internal/CommonUtils.cs b/FreeSql/Internal/CommonUtils.cs index 540f7c19..061f8e4d 100644 --- a/FreeSql/Internal/CommonUtils.cs +++ b/FreeSql/Internal/CommonUtils.cs @@ -1,6 +1,7 @@ using FreeSql.DataAnnotations; using FreeSql.DatabaseModel; using FreeSql.Extensions.EntityUtil; +using FreeSql.Interface; using FreeSql.Internal.Model; using System; using System.Collections; diff --git a/FreeSql/MySql/Curd/MySqlSelect.cs b/FreeSql/MySql/Curd/MySqlSelect.cs index 2a856b34..0f850298 100644 --- a/FreeSql/MySql/Curd/MySqlSelect.cs +++ b/FreeSql/MySql/Curd/MySqlSelect.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.Model; using System; using System.Collections.Generic; diff --git a/FreeSql/MySql/MySqlAdo/MySqlAdo.cs b/FreeSql/MySql/MySqlAdo/MySqlAdo.cs index 388aaeb0..9b47827d 100644 --- a/FreeSql/MySql/MySqlAdo/MySqlAdo.cs +++ b/FreeSql/MySql/MySqlAdo/MySqlAdo.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using Microsoft.Extensions.Logging; using MySql.Data.MySqlClient; using SafeObjectPool; diff --git a/FreeSql/MySql/MySqlCodeFirst.cs b/FreeSql/MySql/MySqlCodeFirst.cs index b3a6087d..e686c975 100644 --- a/FreeSql/MySql/MySqlCodeFirst.cs +++ b/FreeSql/MySql/MySqlCodeFirst.cs @@ -1,5 +1,6 @@ using FreeSql.DataAnnotations; using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using FreeSql.Internal.Model; using MySql.Data.MySqlClient; diff --git a/FreeSql/MySql/MySqlDbFirst.cs b/FreeSql/MySql/MySqlDbFirst.cs index eda5d69e..af6b10fc 100644 --- a/FreeSql/MySql/MySqlDbFirst.cs +++ b/FreeSql/MySql/MySqlDbFirst.cs @@ -1,4 +1,5 @@ using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using MySql.Data.MySqlClient; using System; diff --git a/FreeSql/MySql/MySqlExtensions.cs b/FreeSql/MySql/MySqlExtensions.cs index 84665bf3..ad1bf1f1 100644 --- a/FreeSql/MySql/MySqlExtensions.cs +++ b/FreeSql/MySql/MySqlExtensions.cs @@ -1,4 +1,4 @@ -public static class FreeSqlMySqlExtensions { +public static partial class FreeSqlGlobalExtensions { /// /// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 diff --git a/FreeSql/MySql/MySqlProvider.cs b/FreeSql/MySql/MySqlProvider.cs index 2387c54a..6436e947 100644 --- a/FreeSql/MySql/MySqlProvider.cs +++ b/FreeSql/MySql/MySqlProvider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.CommonProvider; using FreeSql.MySql.Curd; using Microsoft.Extensions.Caching.Distributed; diff --git a/FreeSql/Oracle/Curd/OracleSelect.cs b/FreeSql/Oracle/Curd/OracleSelect.cs index 24dcecda..3d78439d 100644 --- a/FreeSql/Oracle/Curd/OracleSelect.cs +++ b/FreeSql/Oracle/Curd/OracleSelect.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.Model; using System; using System.Collections.Generic; diff --git a/FreeSql/Oracle/OracleAdo/OracleAdo.cs b/FreeSql/Oracle/OracleAdo/OracleAdo.cs index 0991e36a..76a70b8a 100644 --- a/FreeSql/Oracle/OracleAdo/OracleAdo.cs +++ b/FreeSql/Oracle/OracleAdo/OracleAdo.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using Microsoft.Extensions.Logging; using Oracle.ManagedDataAccess.Client; using SafeObjectPool; diff --git a/FreeSql/Oracle/OracleCodeFirst.cs b/FreeSql/Oracle/OracleCodeFirst.cs index ce650f9b..dec65026 100644 --- a/FreeSql/Oracle/OracleCodeFirst.cs +++ b/FreeSql/Oracle/OracleCodeFirst.cs @@ -1,5 +1,6 @@ using FreeSql.DataAnnotations; using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using FreeSql.Internal.Model; using Oracle.ManagedDataAccess.Client; diff --git a/FreeSql/Oracle/OracleDbFirst.cs b/FreeSql/Oracle/OracleDbFirst.cs index de680be1..87164034 100644 --- a/FreeSql/Oracle/OracleDbFirst.cs +++ b/FreeSql/Oracle/OracleDbFirst.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text.RegularExpressions; using Oracle.ManagedDataAccess.Client; using System.Data; +using FreeSql.Interface; namespace FreeSql.Oracle { class OracleDbFirst : IDbFirst { diff --git a/FreeSql/Oracle/OracleExtensions.cs b/FreeSql/Oracle/OracleExtensions.cs index 93282299..35c61de6 100644 --- a/FreeSql/Oracle/OracleExtensions.cs +++ b/FreeSql/Oracle/OracleExtensions.cs @@ -1,4 +1,4 @@ -public static class FreeSqlOracleExtensions { +public static partial class FreeSqlGlobalExtensions { /// /// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 diff --git a/FreeSql/Oracle/OracleProvider.cs b/FreeSql/Oracle/OracleProvider.cs index b595f2a1..084a2aeb 100644 --- a/FreeSql/Oracle/OracleProvider.cs +++ b/FreeSql/Oracle/OracleProvider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.CommonProvider; using FreeSql.Oracle.Curd; using Microsoft.Extensions.Caching.Distributed; diff --git a/FreeSql/PostgreSQL/Curd/PostgreSQLSelect.cs b/FreeSql/PostgreSQL/Curd/PostgreSQLSelect.cs index d51e7fa7..8f6d81c5 100644 --- a/FreeSql/PostgreSQL/Curd/PostgreSQLSelect.cs +++ b/FreeSql/PostgreSQL/Curd/PostgreSQLSelect.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.Model; using System; using System.Collections.Generic; diff --git a/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs b/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs index ed62824f..3c22724a 100644 --- a/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs +++ b/FreeSql/PostgreSQL/PostgreSQLAdo/PostgreSQLAdo.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using Microsoft.Extensions.Logging; using Newtonsoft.Json.Linq; using Npgsql; diff --git a/FreeSql/PostgreSQL/PostgreSQLCodeFirst.cs b/FreeSql/PostgreSQL/PostgreSQLCodeFirst.cs index 38403a6c..dee600e2 100644 --- a/FreeSql/PostgreSQL/PostgreSQLCodeFirst.cs +++ b/FreeSql/PostgreSQL/PostgreSQLCodeFirst.cs @@ -1,5 +1,6 @@ using FreeSql.DataAnnotations; using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using FreeSql.Internal.Model; using Newtonsoft.Json.Linq; diff --git a/FreeSql/PostgreSQL/PostgreSQLDbFirst.cs b/FreeSql/PostgreSQL/PostgreSQLDbFirst.cs index a1608f16..cba4616c 100644 --- a/FreeSql/PostgreSQL/PostgreSQLDbFirst.cs +++ b/FreeSql/PostgreSQL/PostgreSQLDbFirst.cs @@ -1,4 +1,5 @@ using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using Newtonsoft.Json.Linq; using Npgsql.LegacyPostgis; diff --git a/FreeSql/PostgreSQL/PostgreSQLExtensions.cs b/FreeSql/PostgreSQL/PostgreSQLExtensions.cs index 91ea9120..adba0afb 100644 --- a/FreeSql/PostgreSQL/PostgreSQLExtensions.cs +++ b/FreeSql/PostgreSQL/PostgreSQLExtensions.cs @@ -1,4 +1,4 @@ -public static class FreeSqlPostgreSQLExtensions { +public static partial class FreeSqlGlobalExtensions { /// /// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 diff --git a/FreeSql/PostgreSQL/PostgreSQLProvider.cs b/FreeSql/PostgreSQL/PostgreSQLProvider.cs index bbc28288..7188e4e8 100644 --- a/FreeSql/PostgreSQL/PostgreSQLProvider.cs +++ b/FreeSql/PostgreSQL/PostgreSQLProvider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.CommonProvider; using FreeSql.PostgreSQL.Curd; using Microsoft.Extensions.Caching.Distributed; diff --git a/FreeSql/SqlServer/Curd/SqlServerSelect.cs b/FreeSql/SqlServer/Curd/SqlServerSelect.cs index 1586f0af..d74cc9da 100644 --- a/FreeSql/SqlServer/Curd/SqlServerSelect.cs +++ b/FreeSql/SqlServer/Curd/SqlServerSelect.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.Model; using System; using System.Collections.Generic; diff --git a/FreeSql/SqlServer/SqlServerAdo/SqlServerAdo.cs b/FreeSql/SqlServer/SqlServerAdo/SqlServerAdo.cs index e8703114..653e20e2 100644 --- a/FreeSql/SqlServer/SqlServerAdo/SqlServerAdo.cs +++ b/FreeSql/SqlServer/SqlServerAdo/SqlServerAdo.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using Microsoft.Extensions.Logging; using SafeObjectPool; using System; diff --git a/FreeSql/SqlServer/SqlServerCodeFirst.cs b/FreeSql/SqlServer/SqlServerCodeFirst.cs index 6335a9d0..ac9706c2 100644 --- a/FreeSql/SqlServer/SqlServerCodeFirst.cs +++ b/FreeSql/SqlServer/SqlServerCodeFirst.cs @@ -9,6 +9,7 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; using FreeSql.DataAnnotations; +using FreeSql.Interface; namespace FreeSql.SqlServer { diff --git a/FreeSql/SqlServer/SqlServerDbFirst.cs b/FreeSql/SqlServer/SqlServerDbFirst.cs index 56405a7e..b671a118 100644 --- a/FreeSql/SqlServer/SqlServerDbFirst.cs +++ b/FreeSql/SqlServer/SqlServerDbFirst.cs @@ -1,4 +1,5 @@ using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using System; using System.Collections.Generic; diff --git a/FreeSql/SqlServer/SqlServerExtensions.cs b/FreeSql/SqlServer/SqlServerExtensions.cs index b9b201a4..c9fe63b4 100644 --- a/FreeSql/SqlServer/SqlServerExtensions.cs +++ b/FreeSql/SqlServer/SqlServerExtensions.cs @@ -1,4 +1,4 @@ -public static class FreeSqlSqlServerExtensions { +public static partial class FreeSqlGlobalExtensions { /// /// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 diff --git a/FreeSql/SqlServer/SqlServerProvider.cs b/FreeSql/SqlServer/SqlServerProvider.cs index c81dc09a..70135551 100644 --- a/FreeSql/SqlServer/SqlServerProvider.cs +++ b/FreeSql/SqlServer/SqlServerProvider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.CommonProvider; using FreeSql.SqlServer.Curd; using Microsoft.Extensions.Caching.Distributed; diff --git a/FreeSql/Sqlite/Curd/SqliteSelect.cs b/FreeSql/Sqlite/Curd/SqliteSelect.cs index d7dd6253..42956775 100644 --- a/FreeSql/Sqlite/Curd/SqliteSelect.cs +++ b/FreeSql/Sqlite/Curd/SqliteSelect.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.Model; using System; using System.Collections.Generic; diff --git a/FreeSql/Sqlite/SqliteAdo/SqliteAdo.cs b/FreeSql/Sqlite/SqliteAdo/SqliteAdo.cs index 736002a4..4202cca5 100644 --- a/FreeSql/Sqlite/SqliteAdo/SqliteAdo.cs +++ b/FreeSql/Sqlite/SqliteAdo/SqliteAdo.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using Microsoft.Extensions.Logging; using SafeObjectPool; using System; diff --git a/FreeSql/Sqlite/SqliteCodeFirst.cs b/FreeSql/Sqlite/SqliteCodeFirst.cs index b4756b1e..f223424d 100644 --- a/FreeSql/Sqlite/SqliteCodeFirst.cs +++ b/FreeSql/Sqlite/SqliteCodeFirst.cs @@ -1,5 +1,6 @@ using FreeSql.DataAnnotations; using FreeSql.DatabaseModel; +using FreeSql.Interface; using FreeSql.Internal; using FreeSql.Internal.Model; using System; diff --git a/FreeSql/Sqlite/SqliteExtensions.cs b/FreeSql/Sqlite/SqliteExtensions.cs index cd62a91d..c9224c1b 100644 --- a/FreeSql/Sqlite/SqliteExtensions.cs +++ b/FreeSql/Sqlite/SqliteExtensions.cs @@ -1,4 +1,4 @@ -public static class FreeSqlSqliteExtensions { +public static partial class FreeSqlGlobalExtensions { /// /// 特殊处理类似 string.Format 的使用方法,防止注入,以及 IS NULL 转换 diff --git a/FreeSql/Sqlite/SqliteProvider.cs b/FreeSql/Sqlite/SqliteProvider.cs index be1bcf45..7be7e23d 100644 --- a/FreeSql/Sqlite/SqliteProvider.cs +++ b/FreeSql/Sqlite/SqliteProvider.cs @@ -1,4 +1,5 @@ -using FreeSql.Internal; +using FreeSql.Interface; +using FreeSql.Internal; using FreeSql.Internal.CommonProvider; using FreeSql.Sqlite.Curd; using Microsoft.Extensions.Caching.Distributed;