mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 10:42:52 +08:00
- 完善 DbContext/UnitOfWork EntityChange 更新对象之前的值;
This commit is contained in:
parent
dcb4fef9e2
commit
dfac943495
@ -243,6 +243,10 @@ namespace FreeSql
|
||||
public class ChangeInfo
|
||||
{
|
||||
public object Object { get; set; }
|
||||
/// <summary>
|
||||
/// Type = Update 的时候,获取更新之前的对象
|
||||
/// </summary>
|
||||
public object BeforeObject { get; set; }
|
||||
public EntityChangeType Type { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
|
@ -363,15 +363,16 @@ namespace FreeSql
|
||||
|
||||
if (data?.Count > 0)
|
||||
{
|
||||
|
||||
if (cuig.Length == _table.Columns.Count)
|
||||
return ups.Length == data.Count ? -998 : -997;
|
||||
|
||||
var updateSource = data.Select(a => a.Value).ToArray();
|
||||
var update = this.OrmUpdate(null).SetSource(updateSource).IgnoreColumns(cuig);
|
||||
|
||||
var update = this.OrmUpdate(null).SetSource(data.Select(a => a.Value)).IgnoreColumns(cuig);
|
||||
var affrows = await update.ExecuteAffrowsAsync();
|
||||
_db._entityChangeReport.AddRange(updateSource.Select(a => new DbContext.EntityChangeReport.ChangeInfo { Object = a, Type = DbContext.EntityChangeType.Update }));
|
||||
_db._entityChangeReport.AddRange(data.Select(a => new DbContext.EntityChangeReport.ChangeInfo {
|
||||
Object = a.Value,
|
||||
BeforeObject = _states.TryGetValue(a.Key, out var beforeVal) ? beforeVal.Value : null,
|
||||
Type = DbContext.EntityChangeType.Update
|
||||
}));
|
||||
|
||||
foreach (var newval in data)
|
||||
{
|
||||
|
@ -399,15 +399,17 @@ namespace FreeSql
|
||||
|
||||
if (data?.Count > 0)
|
||||
{
|
||||
|
||||
if (cuig.Length == _table.Columns.Count)
|
||||
return ups.Length == data.Count ? -998 : -997;
|
||||
|
||||
var updateSource = data.Select(a => a.Value).ToArray();
|
||||
var update = this.OrmUpdate(null).SetSource(updateSource).IgnoreColumns(cuig);
|
||||
|
||||
var update = this.OrmUpdate(null).SetSource(data.Select(a => a.Value)).IgnoreColumns(cuig);
|
||||
var affrows = update.ExecuteAffrows();
|
||||
_db._entityChangeReport.AddRange(updateSource.Select(a => new DbContext.EntityChangeReport.ChangeInfo { Object = a, Type = DbContext.EntityChangeType.Update }));
|
||||
_db._entityChangeReport.AddRange(data.Select(a => new DbContext.EntityChangeReport.ChangeInfo
|
||||
{
|
||||
Object = a.Value,
|
||||
BeforeObject = _states.TryGetValue(a.Key, out var beforeVal) ? beforeVal.Value : null,
|
||||
Type = DbContext.EntityChangeType.Update
|
||||
}));
|
||||
|
||||
foreach (var newval in data)
|
||||
{
|
||||
|
@ -57,6 +57,11 @@
|
||||
<typeparam name="TEntity"></typeparam>
|
||||
<param name="data"></param>
|
||||
</member>
|
||||
<member name="P:FreeSql.DbContext.EntityChangeReport.ChangeInfo.BeforeObject">
|
||||
<summary>
|
||||
Type = Update 的时候,获取更新之前的对象
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:FreeSql.DbContext.EntityChangeReport.Report">
|
||||
<summary>
|
||||
实体变化记录
|
||||
|
@ -191,7 +191,7 @@ uow.OnEntityChange = report => {
|
||||
参数 report 是一个 List 集合,集合元素的类型定义如下:
|
||||
|
||||
```csharp
|
||||
public class EntityChangeInfo
|
||||
public class ChangeInfo
|
||||
{
|
||||
public object Object { get; set; }
|
||||
public EntityChangeType Type { get; set; }
|
||||
|
@ -213,7 +213,7 @@ uow.OnEntityChange = report => {
|
||||
参数 report 是一个 List 集合,集合元素的类型定义如下:
|
||||
|
||||
```csharp
|
||||
public class EntityChangeInfo
|
||||
public class ChangeInfo
|
||||
{
|
||||
public object Object { get; set; }
|
||||
public EntityChangeType Type { get; set; }
|
||||
|
Loading…
x
Reference in New Issue
Block a user