mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
- 完善 AsTreeCte + ToUpdate/ToDelete 实现树所有子节点删除或更新;
This commit is contained in:
@ -567,11 +567,13 @@ namespace FreeSql
|
||||
/// 该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句<para></para>
|
||||
/// 注意:* 本方法只支持单表操作,不支持导航属性级联保存
|
||||
/// </summary>
|
||||
/// <param name="data">可选参数:手工传递最终的 data 值进行对比<para></para>默认:如果不传递,则使用 BeginEdit 传入的 data 引用进行对比</param>
|
||||
/// <returns></returns>
|
||||
public int EndEdit()
|
||||
public int EndEdit(List<TEntity> data = null)
|
||||
{
|
||||
if (data == null) data = _dataEditing;
|
||||
var beforeAffrows = 0;
|
||||
if (_dataEditing == null) return 0;
|
||||
if (data == null) return 0;
|
||||
var oldEnable = _db.Options.EnableAddOrUpdateNavigateList;
|
||||
_db.Options.EnableAddOrUpdateNavigateList = false;
|
||||
try
|
||||
@ -579,7 +581,7 @@ namespace FreeSql
|
||||
DbContextFlushCommand();
|
||||
var addList = new List<TEntity>();
|
||||
var ediList = new List<NativeTuple<TEntity, string>>();
|
||||
foreach (var item in _dataEditing)
|
||||
foreach (var item in data)
|
||||
{
|
||||
var key = _db.OrmOriginal.GetEntityKeyString(_entityType, item, false);
|
||||
if (_statesEditing.TryRemove(key, out var state) == false)
|
||||
|
@ -125,13 +125,6 @@
|
||||
清空状态数据
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
||||
<summary>
|
||||
根据 lambda 条件删除数据
|
||||
</summary>
|
||||
<param name="predicate"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||
<summary>
|
||||
添加
|
||||
@ -183,12 +176,13 @@
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
</member>
|
||||
<member name="M:FreeSql.DbSet`1.EndEdit">
|
||||
<member name="M:FreeSql.DbSet`1.EndEdit(System.Collections.Generic.List{`0})">
|
||||
<summary>
|
||||
完成编辑数据,进行保存动作<para></para>
|
||||
该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句<para></para>
|
||||
注意:* 本方法只支持单表操作,不支持导航属性级联保存
|
||||
</summary>
|
||||
<param name="data">可选参数:手工传递最终的 data 值进行对比<para></para>默认:如果不传递,则使用 BeginEdit 传入的 data 引用进行对比</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:FreeSql.Extensions.EfCoreFluentApi.EfCoreColumnFluent.Help">
|
||||
@ -330,12 +324,13 @@
|
||||
</summary>
|
||||
<param name="data"></param>
|
||||
</member>
|
||||
<member name="M:FreeSql.IBaseRepository`1.EndEdit">
|
||||
<member name="M:FreeSql.IBaseRepository`1.EndEdit(System.Collections.Generic.List{`0})">
|
||||
<summary>
|
||||
完成编辑数据,进行保存动作<para></para>
|
||||
该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句<para></para>
|
||||
注意:* 本方法只支持单表操作,不支持导航属性级联保存
|
||||
</summary>
|
||||
<param name="data">可选参数:手工传递最终的 data 值进行对比<para></para>默认:如果不传递,则使用 BeginEdit 传入的 data 引用进行对比</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:FreeSql.IUnitOfWork">
|
||||
@ -520,14 +515,5 @@
|
||||
<param name="that"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
|
||||
<summary>
|
||||
批量注入 Repository,可以参考代码自行调整
|
||||
</summary>
|
||||
<param name="services"></param>
|
||||
<param name="globalDataFilter"></param>
|
||||
<param name="assemblies"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
|
@ -142,7 +142,7 @@ namespace FreeSql
|
||||
}
|
||||
|
||||
public void BeginEdit(List<TEntity> data) => _dbset.BeginEdit(data);
|
||||
public int EndEdit()
|
||||
public int EndEdit(List<TEntity> data = null)
|
||||
{
|
||||
_db.FlushCommand();
|
||||
if (UnitOfWork?.GetOrBeginTransaction(true) == null && _db.OrmOriginal.Ado.TransactionCurrentThread == null)
|
||||
@ -152,7 +152,7 @@ namespace FreeSql
|
||||
UnitOfWork = new UnitOfWork(_db.OrmOriginal);
|
||||
try
|
||||
{
|
||||
affrows = _dbset.EndEdit();
|
||||
affrows = _dbset.EndEdit(data);
|
||||
UnitOfWork.Commit();
|
||||
}
|
||||
catch
|
||||
@ -167,7 +167,7 @@ namespace FreeSql
|
||||
}
|
||||
return affrows;
|
||||
}
|
||||
return _dbset.EndEdit();
|
||||
return _dbset.EndEdit(data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -92,8 +92,9 @@ namespace FreeSql
|
||||
/// 该方法根据 BeginEdit 传入的数据状态分析出添加、修改、删除 SQL 语句<para></para>
|
||||
/// 注意:* 本方法只支持单表操作,不支持导航属性级联保存
|
||||
/// </summary>
|
||||
/// <param name="data">可选参数:手工传递最终的 data 值进行对比<para></para>默认:如果不传递,则使用 BeginEdit 传入的 data 引用进行对比</param>
|
||||
/// <returns></returns>
|
||||
int EndEdit();
|
||||
int EndEdit(List<TEntity> data = null);
|
||||
|
||||
#if net40
|
||||
#else
|
||||
|
Reference in New Issue
Block a user