Update diff log

This commit is contained in:
sunkaixuna
2021-11-11 20:38:38 +08:00
parent d8a8367416
commit 1887212362
2 changed files with 10 additions and 7 deletions

View File

@@ -47,21 +47,24 @@ namespace OrmTest
var time = it.Time; var time = it.Time;
var diffType = it.DiffType;//enum insert 、update and delete var diffType = it.DiffType;//enum insert 、update and delete
Console.WriteLine(businessData); Console.WriteLine(businessData);
Console.WriteLine(editBeforeData[0].Columns[1].Value);
Console.WriteLine("to");
Console.WriteLine(editAfterData[0].Columns[1].Value);
//Write logic //Write logic
}; };
db.Queryable<Order>().ToList(); var list= db.Queryable<Order>().ToList();
db.Queryable<OrderItem>().ToList(); db.Queryable<OrderItem>().ToList();
//OnDiffLogEvent //OnDiffLogEvent
var data = db.Queryable<Order>().First(); var data = db.Queryable<Order>().First();
db.Insertable(list.Take(5).ToList()).EnableDiffLogEvent().ExecuteCommand();
db.Insertable(new Order() { CreateTime=DateTime.Now, CustomId=1, Name="a" ,Price=1 }).EnableDiffLogEvent().ExecuteCommand();
data.Name = "changeName"; data.Name = "changeName";
db.Updateable(data).EnableDiffLogEvent("--update Order--").ExecuteCommand(); db.Updateable(data).EnableDiffLogEvent("--update Order--").ExecuteCommand();
db.Updateable(list.Take(5).ToList()).EnableDiffLogEvent("--update Order--").ExecuteCommand();
Console.WriteLine("#### Aop End ####"); Console.WriteLine("#### Aop End ####");
} }
} }

View File

@@ -142,7 +142,7 @@ namespace SqlSugar
} }
public IUpdateable<T> EnableDiffLogEvent(object businessData = null) public IUpdateable<T> EnableDiffLogEvent(object businessData = null)
{ {
Check.Exception(this.UpdateObjs.HasValue() && this.UpdateObjs.Count() > 1, "DiffLog does not support batch operations"); //Check.Exception(this.UpdateObjs.HasValue() && this.UpdateObjs.Count() > 1, "DiffLog does not support batch operations");
diffModel = new DiffLogModel(); diffModel = new DiffLogModel();
this.IsEnableDiffLogEvent = true; this.IsEnableDiffLogEvent = true;
diffModel.BusinessData = businessData; diffModel.BusinessData = businessData;
@@ -807,8 +807,8 @@ namespace SqlSugar
private List<DiffLogTableInfo> GetDiffTable(string sql, List<SugarParameter> parameters) private List<DiffLogTableInfo> GetDiffTable(string sql, List<SugarParameter> parameters)
{ {
List<DiffLogTableInfo> result = new List<DiffLogTableInfo>(); List<DiffLogTableInfo> result = new List<DiffLogTableInfo>();
var whereSql = Regex.Replace(sql, ".* WHERE ", "", RegexOptions.Singleline); //var whereSql = Regex.Replace(sql, ".* WHERE ", "", RegexOptions.Singleline);
var dt = this.Context.Queryable<T>().Where(whereSql).AddParameters(parameters).ToDataTable(); var dt = this.Context.Queryable<T>().WhereClassByPrimaryKey(this.UpdateObjs.ToList()).ToDataTable();
if (dt.Rows != null && dt.Rows.Count > 0) if (dt.Rows != null && dt.Rows.Count > 0)
{ {
foreach (DataRow row in dt.Rows) foreach (DataRow row in dt.Rows)