- 增加 ISelect ToDelete/ToUpdate 方法,实现更复杂的删除/更新操作;

This commit is contained in:
28810
2019-10-30 20:35:42 +08:00
parent db7fe82403
commit 21b4b0d5d3
21 changed files with 1594 additions and 9 deletions

View File

@@ -611,7 +611,8 @@
</member>
<member name="M:FreeSql.IDelete`1.Where(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
lambda表达式条件仅支持实体基础成员不包含导航对象
lambda表达式条件仅支持实体基础成员不包含导航对象<para></para>
若想使用导航对象,请使用 ISelect.ToDelete() 方法
</summary>
<param name="exp">lambda表达式条件</param>
<returns></returns>
@@ -870,6 +871,30 @@
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.ISelect0`2.ToDelete">
<summary>
将查询转为删除对象,以便支持导航对象或其他查询功能删除数据,如下:<para></para>
fsql.Select&lt;T1&gt;().Where(a => a.Options.xxx == 1).ToDelete().ExecuteAffrows()<para></para>
注意:此方法不是将数据查询到内存循环删除,上面的代码产生如下 SQL 执行:<para></para>
DELETE FROM `T1` WHERE id in (select a.id from T1 a left join Options b on b.t1id = a.id where b.xxx = 1)<para></para>
复杂删除使用该方案的好处:<para></para>
1、删除前可预览测试数据防止错误删除操作<para></para>
2、支持更加复杂的删除操作IDelete 默认只支持简单的操作);
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.ISelect0`2.ToUpdate">
<summary>
将查询转为更新对象,以便支持导航对象或其他查询功能更新数据,如下:<para></para>
fsql.Select&lt;T1&gt;().Where(a => a.Options.xxx == 1).ToUpdate().Set(a => a.Title, "111").ExecuteAffrows()<para></para>
注意:此方法不是将数据查询到内存循环更新,上面的代码产生如下 SQL 执行:<para></para>
UPDATE `T1` SET Title = '111' WHERE id in (select a.id from T1 a left join Options b on b.t1id = a.id where b.xxx = 1)<para></para>
复杂更新使用该方案的好处:<para></para>
1、更新前可预览测试数据防止错误更新操作<para></para>
2、支持更加复杂的更新操作IUpdate 默认只支持简单的操作);
</summary>
<returns></returns>
</member>
<member name="M:FreeSql.ISelect0`2.AsTable(System.Func{System.Type,System.String,System.String})">
<summary>
设置表名规则,可用于分库/分表参数1实体类型参数2默认表名返回值新表名 <para></para>
@@ -1710,7 +1735,8 @@
</member>
<member name="M:FreeSql.IUpdate`1.Where(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
<summary>
lambda表达式条件仅支持实体基础成员不包含导航对象
lambda表达式条件仅支持实体基础成员不包含导航对象<para></para>
若想使用导航对象,请使用 ISelect.ToUpdate() 方法
</summary>
<param name="exp">lambda表达式条件</param>
<returns></returns>