- 调整 DbContext.EntityChangeInfo 类名为 DbContext.EntityChangeReport.ChangeInfo;

- 调整 IUnitOfWork 接口,移除 OnEntityChange 属性,增加 EntityChangeReport 属性;
This commit is contained in:
28810
2019-10-15 19:18:31 +08:00
parent 375ba5f3cb
commit d7877924a5
9 changed files with 60 additions and 50 deletions

View File

@ -23,7 +23,7 @@ namespace FreeSql
{
if (adds.Any() == false) return 0;
var affrows = await this.OrmInsert(adds.Select(a => a.Value)).ExecuteAffrowsAsync();
_db._entityChangeReport.AddRange(adds.Select(a => new DbContext.EntityChangeInfo { Object = a.Value, Type = DbContext.EntityChangeType.Insert }));
_db._entityChangeReport.AddRange(adds.Select(a => new DbContext.EntityChangeReport.ChangeInfo { Object = a.Value, Type = DbContext.EntityChangeType.Insert }));
return affrows;
}
@ -46,7 +46,7 @@ namespace FreeSql
var idtval = await this.OrmInsert(data).ExecuteIdentityAsync();
IncrAffrows(1);
_db.Orm.SetEntityIdentityValueWithPrimary(_entityType, data, idtval);
_db._entityChangeReport.Add(new DbContext.EntityChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert });
_db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert });
Attach(data);
if (_db.Options.EnableAddOrUpdateNavigateList)
await AddOrUpdateNavigateListAsync(data, true);
@ -55,7 +55,7 @@ namespace FreeSql
{
await DbContextExecCommandAsync();
var newval = (await this.OrmInsert(data).ExecuteInsertedAsync()).First();
_db._entityChangeReport.Add(new DbContext.EntityChangeInfo { Object = newval, Type = DbContext.EntityChangeType.Insert });
_db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = newval, Type = DbContext.EntityChangeType.Insert });
IncrAffrows(1);
_db.Orm.MapEntityValue(_entityType, newval, data);
Attach(newval);
@ -70,7 +70,7 @@ namespace FreeSql
var idtval = await this.OrmInsert(data).ExecuteIdentityAsync();
IncrAffrows(1);
_db.Orm.SetEntityIdentityValueWithPrimary(_entityType, data, idtval);
_db._entityChangeReport.Add(new DbContext.EntityChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert });
_db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = data, Type = DbContext.EntityChangeType.Insert });
Attach(data);
if (_db.Options.EnableAddOrUpdateNavigateList)
await AddOrUpdateNavigateListAsync(data, true);
@ -104,7 +104,7 @@ namespace FreeSql
await DbContextExecCommandAsync();
var rets = await this.OrmInsert(data).ExecuteInsertedAsync();
if (rets.Count != data.Count()) throw new Exception($"特别错误:批量添加失败,{_db.Orm.Ado.DataType} 的返回数据,与添加的数目不匹配");
_db._entityChangeReport.AddRange(rets.Select(a => new DbContext.EntityChangeInfo { Object = a, Type = DbContext.EntityChangeType.Insert }));
_db._entityChangeReport.AddRange(rets.Select(a => new DbContext.EntityChangeReport.ChangeInfo { Object = a, Type = DbContext.EntityChangeType.Insert }));
var idx = 0;
foreach (var s in data)
_db.Orm.MapEntityValue(_entityType, rets[idx++], s);
@ -200,7 +200,7 @@ namespace FreeSql
foreach (var midWhere in midWheres) delall.Where(midWhere);
var sql = delall.ToSql();
await delall.ExecuteAffrowsAsync();
_db._entityChangeReport.Add(new DbContext.EntityChangeInfo { Object = sql, Type = DbContext.EntityChangeType.SqlRaw });
_db._entityChangeReport.Add(new DbContext.EntityChangeReport.ChangeInfo { Object = sql, Type = DbContext.EntityChangeType.SqlRaw });
}
else //保存
{
@ -321,7 +321,7 @@ namespace FreeSql
var update = this.OrmUpdate(null).SetSource(updateSource).IgnoreColumns(cuig);
var affrows = await update.ExecuteAffrowsAsync();
_db._entityChangeReport.AddRange(updateSource.Select(a => new DbContext.EntityChangeInfo { Object = a, Type = DbContext.EntityChangeType.Update }));
_db._entityChangeReport.AddRange(updateSource.Select(a => new DbContext.EntityChangeReport.ChangeInfo { Object = a, Type = DbContext.EntityChangeType.Update }));
foreach (var newval in data)
{
@ -373,7 +373,7 @@ namespace FreeSql
{
if (dels.Any() == false) return 0;
var affrows = await this.OrmDelete(dels.Select(a => a.Value)).ExecuteAffrowsAsync();
_db._entityChangeReport.AddRange(dels.Select(a => new DbContext.EntityChangeInfo { Object = a.Value, Type = DbContext.EntityChangeType.Delete }));
_db._entityChangeReport.AddRange(dels.Select(a => new DbContext.EntityChangeReport.ChangeInfo { Object = a.Value, Type = DbContext.EntityChangeType.Delete }));
return Math.Max(dels.Length, affrows);
}
#endregion