mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-06-18 20:08:15 +08:00
v3.2.806-preview20231214
This commit is contained in:
@ -57,13 +57,23 @@ namespace FreeSql
|
||||
}
|
||||
}
|
||||
public void AsType(Type entityType) => _repository.AsType(entityType);
|
||||
Func<string, string> _asTableRule;
|
||||
Func<Type, string, string> _asTableRule;
|
||||
public void AsTable(Func<string, string> rule)
|
||||
{
|
||||
_repository.AsTable(rule);
|
||||
_asTableRule = rule;
|
||||
if (rule == null)
|
||||
{
|
||||
_asTableRule = null;
|
||||
return;
|
||||
}
|
||||
_asTableRule = (t, old) => t == EntityType ? rule(old) : null;
|
||||
}
|
||||
public Type EntityType => _repository.EntityType;
|
||||
public void AsTable(Func<Type, string, string> rule)
|
||||
{
|
||||
_repository.AsTable(rule);
|
||||
_asTableRule = rule;
|
||||
}
|
||||
public Type EntityType => _repository.EntityType;
|
||||
public IDataFilter<TEntity> DataFilter => _repository.DataFilter;
|
||||
|
||||
public void Attach(TEntity entity)
|
||||
|
@ -209,9 +209,10 @@ namespace FreeSql
|
||||
}
|
||||
var affrows = 0;
|
||||
for (var a = tracking.DeleteLog.Count - 1; a >= 0; a--)
|
||||
{
|
||||
affrows += await Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1).AsTable(_asTableRule)
|
||||
.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrowsAsync(cancellationToken);
|
||||
{
|
||||
var delete = Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1);
|
||||
if (_asTableRule != null) delete.AsTable(old => _asTableRule(tracking.DeleteLog[a].Item1, old));
|
||||
affrows += await delete.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrowsAsync(cancellationToken);
|
||||
if (deletedOutput != null) deletedOutput.AddRange(tracking.DeleteLog[a].Item2);
|
||||
UnitOfWork?.EntityChangeReport?.Report.AddRange(tracking.DeleteLog[a].Item2.Select(x =>
|
||||
new DbContext.EntityChangeReport.ChangeInfo
|
||||
@ -249,9 +250,10 @@ namespace FreeSql
|
||||
}
|
||||
|
||||
for (var a = tracking.DeleteLog.Count - 1; a >= 0; a--)
|
||||
{
|
||||
affrows += await Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1).AsTable(_asTableRule)
|
||||
.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrowsAsync(cancellationToken);
|
||||
{
|
||||
var delete = Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1);
|
||||
if (_asTableRule != null) delete.AsTable(old => _asTableRule(tracking.DeleteLog[a].Item1, old));
|
||||
affrows += await delete.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrowsAsync(cancellationToken);
|
||||
UnitOfWork?.EntityChangeReport?.Report.AddRange(tracking.DeleteLog[a].Item2.Select(x =>
|
||||
new DbContext.EntityChangeReport.ChangeInfo
|
||||
{
|
||||
@ -274,8 +276,10 @@ namespace FreeSql
|
||||
{
|
||||
foreach (var dl2 in dl.Value)
|
||||
{
|
||||
affrows += await Orm.Update<object>().AsType(dl.Key).AsTable(_asTableRule)
|
||||
.SetSource(dl2.Value.Select(a => a.AfterObject).ToArray())
|
||||
var update = Orm.Update<object>().AsType(dl.Key);
|
||||
if (_asTableRule != null) update.AsTable(old => _asTableRule(dl.Key, old));
|
||||
affrows += await update
|
||||
.SetSource(dl2.Value.Select(a => a.AfterObject).ToArray())
|
||||
.UpdateColumns(dl2.Value.First().UpdateColumns.ToArray())
|
||||
.ExecuteAffrowsAsync(cancellationToken);
|
||||
UnitOfWork?.EntityChangeReport?.Report.AddRange(dl2.Value.Select(x =>
|
||||
|
@ -261,9 +261,10 @@ namespace FreeSql
|
||||
}
|
||||
var affrows = 0;
|
||||
for (var a = tracking.DeleteLog.Count - 1; a >= 0; a--)
|
||||
{
|
||||
affrows += Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1).AsTable(_asTableRule)
|
||||
.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrows();
|
||||
{
|
||||
var delete = Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1);
|
||||
if (_asTableRule != null) delete.AsTable(old => _asTableRule(tracking.DeleteLog[a].Item1, old));
|
||||
affrows += delete.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrows();
|
||||
if (deletedOutput != null) deletedOutput.AddRange(tracking.DeleteLog[a].Item2);
|
||||
UnitOfWork?.EntityChangeReport?.Report.AddRange(tracking.DeleteLog[a].Item2.Select(x =>
|
||||
new DbContext.EntityChangeReport.ChangeInfo
|
||||
@ -300,9 +301,10 @@ namespace FreeSql
|
||||
}
|
||||
|
||||
for (var a = tracking.DeleteLog.Count - 1; a >= 0; a--)
|
||||
{
|
||||
affrows += Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1).AsTable(_asTableRule)
|
||||
.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrows();
|
||||
{
|
||||
var delete = Orm.Delete<object>().AsType(tracking.DeleteLog[a].Item1);
|
||||
if (_asTableRule != null) delete.AsTable(old => _asTableRule(tracking.DeleteLog[a].Item1, old));
|
||||
affrows += delete.WhereDynamic(tracking.DeleteLog[a].Item2).ExecuteAffrows();
|
||||
UnitOfWork?.EntityChangeReport?.Report.AddRange(tracking.DeleteLog[a].Item2.Select(x =>
|
||||
new DbContext.EntityChangeReport.ChangeInfo
|
||||
{
|
||||
@ -325,8 +327,10 @@ namespace FreeSql
|
||||
{
|
||||
foreach (var dl2 in dl.Value)
|
||||
{
|
||||
affrows += Orm.Update<object>().AsType(dl.Key).AsTable(_asTableRule)
|
||||
.SetSource(dl2.Value.Select(a => a.AfterObject).ToArray())
|
||||
var update = Orm.Update<object>().AsType(dl.Key);
|
||||
if (_asTableRule != null) update.AsTable(old => _asTableRule(dl.Key, old));
|
||||
affrows += update
|
||||
.SetSource(dl2.Value.Select(a => a.AfterObject).ToArray())
|
||||
.UpdateColumns(dl2.Value.First().UpdateColumns.ToArray())
|
||||
.ExecuteAffrows();
|
||||
UnitOfWork?.EntityChangeReport?.Report.AddRange(dl2.Value.Select(x =>
|
||||
|
@ -18,7 +18,7 @@
|
||||
<SignAssembly>true</SignAssembly>
|
||||
<AssemblyOriginatorKeyFile>key.snk</AssemblyOriginatorKeyFile>
|
||||
<DelaySign>false</DelaySign>
|
||||
<Version>3.2.806-preview20231213</Version>
|
||||
<Version>3.2.806-preview20231214</Version>
|
||||
<PackageReadmeFile>readme.md</PackageReadmeFile>
|
||||
</PropertyGroup>
|
||||
|
||||
|
Reference in New Issue
Block a user