mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 增加 IUpdate/IDelete WhereIf 方法 #466;
This commit is contained in:
parent
ea81fde340
commit
9e9891ded4
@ -1260,6 +1260,15 @@
|
||||
<param name="exp">lambda表达式条件</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDelete`1.WhereIf(System.Boolean,System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
lambda表达式条件,仅支持实体基础成员(不包含导航对象)<para></para>
|
||||
若想使用导航对象,请使用 ISelect.ToUpdate() 方法
|
||||
</summary>
|
||||
<param name="condition">true 时生效</param>
|
||||
<param name="exp">lambda表达式条件</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDelete`1.Where(System.String,System.Object)">
|
||||
<summary>
|
||||
原生sql语法条件,Where("id = ?id", new { id = 1 })<para></para>
|
||||
@ -2670,6 +2679,15 @@
|
||||
<param name="exp">lambda表达式条件</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IUpdate`1.WhereIf(System.Boolean,System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
lambda表达式条件,仅支持实体基础成员(不包含导航对象)<para></para>
|
||||
若想使用导航对象,请使用 ISelect.ToUpdate() 方法
|
||||
</summary>
|
||||
<param name="condition">true 时生效</param>
|
||||
<param name="exp">lambda表达式条件</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IUpdate`1.Where(System.String,System.Object)">
|
||||
<summary>
|
||||
原生sql语法条件,Where("id = ?id", new { id = 1 })<para></para>
|
||||
@ -3311,182 +3329,7 @@
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.AuditDataReaderEventArgs.Value">
|
||||
<summary>
|
||||
获取 Index 对应的值,也可以设置拦截的新值
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.CommandBeforeEventArgs.Identifier">
|
||||
<summary>
|
||||
标识符,可将 CommandBefore 与 CommandAfter 进行匹配
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.CommandAfterEventArgs.Exception">
|
||||
<summary>
|
||||
发生的错误
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.CommandAfterEventArgs.Log">
|
||||
<summary>
|
||||
执行SQL命令,返回的结果
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.CommandAfterEventArgs.ElapsedTicks">
|
||||
<summary>
|
||||
耗时(单位:Ticks)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.CommandAfterEventArgs.ElapsedMilliseconds">
|
||||
<summary>
|
||||
耗时(单位:毫秒)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.TraceBeforeEventArgs.Identifier">
|
||||
<summary>
|
||||
标识符,可将 TraceBeforeEventArgs 与 TraceAfterEventArgs 进行匹配
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.TraceAfterEventArgs.Remark">
|
||||
<summary>
|
||||
备注
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.TraceAfterEventArgs.Exception">
|
||||
<summary>
|
||||
发生的错误
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.TraceAfterEventArgs.ElapsedTicks">
|
||||
<summary>
|
||||
耗时(单位:Ticks)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Aop.TraceAfterEventArgs.ElapsedMilliseconds">
|
||||
<summary>
|
||||
耗时(单位:毫秒)
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsAutoSyncStructure">
|
||||
<summary>
|
||||
【开发环境必备】自动同步实体结构到数据库,程序运行中检查实体表是否存在,然后创建或修改
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsSyncStructureToLower">
|
||||
<summary>
|
||||
转小写同步结构,适用 PostgreSQL
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsSyncStructureToUpper">
|
||||
<summary>
|
||||
转大写同步结构,适用 Oracle/达梦/人大金仓
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsConfigEntityFromDbFirst">
|
||||
<summary>
|
||||
将数据库的主键、自增、索引设置导入,适用 DbFirst 模式,无须在实体类型上设置 [Column(IsPrimary)] 或者 ConfigEntity。此功能目前可用于 mysql/sqlserver/postgresql/oracle。<para></para>
|
||||
本功能会影响 IFreeSql 首次访问的速度。<para></para>
|
||||
若使用 CodeFirst 创建索引后,又直接在数据库上建了索引,若无本功能下一次 CodeFirst 迁移时数据库上创建的索引将被删除
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsNoneCommandParameter">
|
||||
<summary>
|
||||
不使用命令参数化执行,针对 Insert/Update
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsGenerateCommandParameterWithLambda">
|
||||
<summary>
|
||||
是否生成命令参数化执行,针对 lambda 表达式解析<para></para>
|
||||
注意:常量不会参数化,变量才会做参数化<para></para>
|
||||
var id = 100;
|
||||
fsql.Select<T>().Where(a => a.id == id) 会参数化<para></para>
|
||||
fsql.Select<T>().Where(a => a.id == 100) 不会参数化
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.ICodeFirst.IsLazyLoading">
|
||||
<summary>
|
||||
延时加载导航属性对象,导航属性需要声明 virtual
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.GetComparisonDDLStatements``1">
|
||||
<summary>
|
||||
将实体类型与数据库对比,返回DDL语句
|
||||
</summary>
|
||||
<typeparam name="TEntity"></typeparam>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.GetComparisonDDLStatements(System.Type[])">
|
||||
<summary>
|
||||
将实体类型集合与数据库对比,返回DDL语句
|
||||
</summary>
|
||||
<param name="entityTypes">实体类型</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.GetComparisonDDLStatements(System.Type,System.String)">
|
||||
<summary>
|
||||
将实体类型与数据库对比,返回DDL语句(指定表名)
|
||||
</summary>
|
||||
<param name="entityType">实体类型</param>
|
||||
<param name="tableName">指定表名对比</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.SyncStructure``1">
|
||||
<summary>
|
||||
同步实体类型到数据库<para></para>
|
||||
注意:生产环境中谨慎使用
|
||||
</summary>
|
||||
<typeparam name="TEntity"></typeparam>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.SyncStructure(System.Type[])">
|
||||
<summary>
|
||||
同步实体类型集合到数据库<para></para>
|
||||
注意:生产环境中谨慎使用
|
||||
</summary>
|
||||
<param name="entityTypes"></param>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.SyncStructure(System.Type,System.String,System.Boolean)">
|
||||
<summary>
|
||||
同步实体类型到数据库(指定表名)<para></para>
|
||||
注意:生产环境中谨慎使用
|
||||
</summary>
|
||||
<param name="entityType">实体类型</param>
|
||||
<param name="tableName">指定表名对比</param>
|
||||
<param name="isForceSync">强制同步结构,无视缓存每次都同步</param>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.GetDbInfo(System.Type)">
|
||||
<summary>
|
||||
根据 System.Type 获取数据库信息
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.ConfigEntity``1(System.Action{FreeSql.DataAnnotations.TableFluent{``0}})">
|
||||
<summary>
|
||||
FreeSql FluentApi 配置实体,方法名与特性相同
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="entity"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.ConfigEntity(System.Type,System.Action{FreeSql.DataAnnotations.TableFluent})">
|
||||
<summary>
|
||||
FreeSql FluentApi 配置实体,方法名与特性相同
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<param name="entity"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.GetConfigEntity(System.Type)">
|
||||
<summary>
|
||||
获取 FreeSql FluentApi 配置实体的元数据
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<returns>未使用ConfigEntity配置时,返回null</returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.ICodeFirst.GetTableByEntity(System.Type)">
|
||||
<summary>
|
||||
获取实体类核心配置
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<returns></returns>
|
||||
<summaturns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetDatabases">
|
||||
<summary>
|
||||
@ -3678,6 +3521,194 @@
|
||||
</summary>
|
||||
<param name="obj"></param>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.Model.ColumnInfo.SetValue(System.Object,System.Object)">
|
||||
<summary>
|
||||
设置 obj.CsName 属性值
|
||||
</summary>
|
||||
<param name="obj"></param>
|
||||
<param name="val"></param>
|
||||
</member> 获取指定数据库的表信息,包括表、列详情、主键、唯一键、索引、外键、备注
|
||||
</summary>
|
||||
<param name="database"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetTableByName(System.String,System.Boolean)">
|
||||
<summary>
|
||||
获取指定单表信息,包括列详情、主键、唯一键、索引、备注
|
||||
</summary>
|
||||
<param name="name">表名,如:dbo.table1</param>
|
||||
<param name="ignoreCase">是否忽略大小写</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.ExistsTable(System.String,System.Boolean)">
|
||||
<summary>
|
||||
判断表是否存在
|
||||
</summary>
|
||||
<param name="name">表名,如:dbo.table1</param>
|
||||
<param name="ignoreCase">是否忽略大小写</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetDbType(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
获取数据库枚举类型int值
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetCsConvert(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
获取c#转换,(int)、(long)
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetCsTypeValue(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
获取c#值
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetCsType(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
获取c#类型,int、long
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetCsTypeInfo(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
获取c#类型对象
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetDataReaderMethod(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
获取ado.net读取方法, GetBoolean、GetInt64
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetCsStringify(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
序列化
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetCsParse(FreeSql.DatabaseModel.DbColumnInfo)">
|
||||
<summary>
|
||||
反序列化
|
||||
</summary>
|
||||
<param name="column"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.IDbFirst.GetEnumsByDatabase(System.String[])">
|
||||
<summary>
|
||||
获取数据库枚举类型,适用 PostgreSQL
|
||||
</summary>
|
||||
<param name="database"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.CommonProvider.InsertOrUpdateProvider`1.SplitSourceByIdentityValueIsNull(System.Collections.Generic.List{`0})">
|
||||
<summary>
|
||||
如果实体类有自增属性,分成两个 List,有值的Item1 merge,无值的Item2 insert
|
||||
</summary>
|
||||
<param name="source"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.CommonProvider.InsertProvider`1.IgnoreCanInsert">
|
||||
<summary>
|
||||
AsType, Ctor, ClearData 三处地方需要重新加载
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.CommonProvider.UpdateProvider`1.IgnoreCanUpdate">
|
||||
<summary>
|
||||
AsType, Ctor, ClearData 三处地方需要重新加载
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.CommonUtils.GetPropertyCommentByDescriptionAttribute(System.Type)">
|
||||
<summary>
|
||||
动态读取 DescriptionAttribute 注释文本
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.CommonUtils.GetProperyCommentBySummary(System.Type)">
|
||||
<summary>
|
||||
通过属性的注释文本,通过 xml 读取
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<returns>Dict:key=属性名,value=注释</returns>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.DbUpdateVersionException.Table">
|
||||
<summary>
|
||||
更新实体的元数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.DbUpdateVersionException.Sql">
|
||||
<summary>
|
||||
执行更新的 SQL
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.DbUpdateVersionException.DbParams">
|
||||
<summary>
|
||||
执行更新命令的参数
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.DbUpdateVersionException.Affrows">
|
||||
<summary>
|
||||
执行更新命令影响的行
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.DbUpdateVersionException.EntitySourceCount">
|
||||
<summary>
|
||||
更新的实体数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.DbUpdateVersionException.EntitySource">
|
||||
<summary>
|
||||
更新的实体
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.GlobalFilter.Apply``1(System.String,System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
|
||||
<summary>
|
||||
创建一个过滤器
|
||||
</summary>
|
||||
<typeparam name="TEntity"></typeparam>
|
||||
<param name="name">名字</param>
|
||||
<param name="where">表达式</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.Model.BatchProgressStatus`1.Data">
|
||||
<summary>
|
||||
当前操作的数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.Model.BatchProgressStatus`1.Current">
|
||||
<summary>
|
||||
当前批次
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.Internal.Model.BatchProgressStatus`1.Total">
|
||||
<summary>
|
||||
总批次数量
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.Model.ColumnInfo.GetDbValue(System.Object)">
|
||||
<summary>
|
||||
获取 obj.CsName 属性值 MapType 之后的数据库值
|
||||
</summary>
|
||||
<param name="obj"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.Model.ColumnInfo.GetValue(System.Object)">
|
||||
<summary>
|
||||
获取 obj.CsName 属性原始值(不经过 MapType)
|
||||
</summary>
|
||||
<param name="obj"></param>
|
||||
</member>
|
||||
<member name="M:FreeSql.Internal.Model.ColumnInfo.SetValue(System.Object,System.Object)">
|
||||
<summary>
|
||||
设置 obj.CsName 属性值
|
||||
|
@ -30,6 +30,14 @@ namespace FreeSql
|
||||
/// <returns></returns>
|
||||
IDelete<T1> Where(Expression<Func<T1, bool>> exp);
|
||||
/// <summary>
|
||||
/// lambda表达式条件,仅支持实体基础成员(不包含导航对象)<para></para>
|
||||
/// 若想使用导航对象,请使用 ISelect.ToUpdate() 方法
|
||||
/// </summary>
|
||||
/// <param name="condition">true 时生效</param>
|
||||
/// <param name="exp">lambda表达式条件</param>
|
||||
/// <returns></returns>
|
||||
IDelete<T1> WhereIf(bool condition, Expression<Func<T1, bool>> exp);
|
||||
/// <summary>
|
||||
/// 原生sql语法条件,Where("id = ?id", new { id = 1 })<para></para>
|
||||
/// 提示:parms 参数还可以传 Dictionary<string, object>
|
||||
/// </summary>
|
||||
|
@ -170,6 +170,14 @@ namespace FreeSql
|
||||
/// <returns></returns>
|
||||
IUpdate<T1> Where(Expression<Func<T1, bool>> exp);
|
||||
/// <summary>
|
||||
/// lambda表达式条件,仅支持实体基础成员(不包含导航对象)<para></para>
|
||||
/// 若想使用导航对象,请使用 ISelect.ToUpdate() 方法
|
||||
/// </summary>
|
||||
/// <param name="condition">true 时生效</param>
|
||||
/// <param name="exp">lambda表达式条件</param>
|
||||
/// <returns></returns>
|
||||
IUpdate<T1> WhereIf(bool condition, Expression<Func<T1, bool>> exp);
|
||||
/// <summary>
|
||||
/// 原生sql语法条件,Where("id = ?id", new { id = 1 })<para></para>
|
||||
/// 提示:parms 参数还可以传 Dictionary<string, object>
|
||||
/// </summary>
|
||||
|
@ -86,7 +86,12 @@ namespace FreeSql.Internal.CommonProvider
|
||||
}
|
||||
public abstract List<T1> ExecuteDeleted();
|
||||
|
||||
public IDelete<T1> Where(Expression<Func<T1, bool>> exp) => this.Where(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, exp?.Body, null, _params));
|
||||
public IDelete<T1> Where(Expression<Func<T1, bool>> exp) => WhereIf(true, exp);
|
||||
public IDelete<T1> WhereIf(bool condition, Expression<Func<T1, bool>> exp)
|
||||
{
|
||||
if (condition == false || exp == null) return this;
|
||||
return this.Where(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, exp?.Body, null, _params));
|
||||
}
|
||||
public IDelete<T1> Where(string sql, object parms = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(sql)) return this;
|
||||
|
@ -519,7 +519,12 @@ namespace FreeSql.Internal.CommonProvider
|
||||
return this;
|
||||
}
|
||||
|
||||
public IUpdate<T1> Where(Expression<Func<T1, bool>> expression) => this.Where(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, expression?.Body, null, _params));
|
||||
public IUpdate<T1> Where(Expression<Func<T1, bool>> exp) => WhereIf(true, exp);
|
||||
public IUpdate<T1> WhereIf(bool condition, Expression<Func<T1, bool>> exp)
|
||||
{
|
||||
if (condition == false || exp == null) return this;
|
||||
return this.Where(_commonExpression.ExpressionWhereLambdaNoneForeignObject(null, _table, null, exp?.Body, null, _params));
|
||||
}
|
||||
public IUpdate<T1> Where(string sql, object parms = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(sql)) return this;
|
||||
|
Loading…
x
Reference in New Issue
Block a user