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