Skip to content

Commit 9892e0a

Browse files
authored
Merge pull request #58 from bing-framework/dev_3.1
publish: 2.2.3
2 parents e1728e5 + 0b844ca commit 9892e0a

File tree

6 files changed

+42
-12
lines changed

6 files changed

+42
-12
lines changed

framework/src/Bing.Datas.EntityFramework/Logs/EfLog.cs

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Bing.Extensions;
88
using Bing.Helpers;
99
using Bing.Logs;
10+
using Bing.Reflection;
1011
using Bing.Uow;
1112
using Microsoft.EntityFrameworkCore.Diagnostics;
1213
using Microsoft.Extensions.Logging;
@@ -37,6 +38,7 @@ public class EfLog : ILogger
3738
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception,
3839
Func<TState, Exception, string> formatter)
3940
{
41+
var success = false;
4042
var config = GetConfig();
4143
var log = GetUnitOfWork()?.Log;
4244
if (log == null)
@@ -46,13 +48,31 @@ public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Except
4648
if (!string.IsNullOrWhiteSpace(GetUnitOfWork().TraceId))
4749
log.Tag(GetUnitOfWork()?.TraceId);
4850
log.Tag(TraceLogName);
49-
log
50-
.Caption($"执行EF操作:{formatter(state, exception)}")
51-
.Content($"工作单元跟踪号:{GetUnitOfWork()?.TraceId}")
52-
.Content($"事件ID:{eventId.Id}")
53-
.Content($"事件名称:{eventId.Name}");
54-
AddContent(state, config, log);
55-
log.Exception(exception).Trace();
51+
var caption = string.Empty;
52+
try
53+
{
54+
log
55+
.Content($"工作单元跟踪号:{GetUnitOfWork()?.TraceId}")
56+
.Content($"事件ID:{eventId.Id}")
57+
.Content($"事件名称:{eventId.Name}");
58+
AddContent(state, config, log);
59+
log.Exception(exception);
60+
caption = formatter(state, exception);
61+
success = true;
62+
}
63+
catch (Exception e)
64+
{
65+
InvokeHelper.OnInvokeException?.Invoke(e);
66+
success = false;
67+
}
68+
finally
69+
{
70+
log.Caption($"执行EF操作:{caption}");
71+
if (success)
72+
log.Trace();
73+
else
74+
log.Error();
75+
}
5676
}
5777

5878
/// <summary>

framework/src/Bing.Ddd.Domain/Bing/Domain/ChangeTracking/ChangeTrackingContext.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,13 +75,14 @@ public void Add<TObject>(IChangeTrackable<TObject> leftObj, TObject rightObj) wh
7575
/// <typeparam name="TProperty">属性类型</typeparam>
7676
/// <typeparam name="TValue">值类型</typeparam>
7777
/// <param name="expression">属性表达式。范例:t => t.Name</param>
78+
/// <param name="obj">领域对象</param>
7879
/// <param name="newValue">新值。范例:newEntity.Name</param>
79-
public void Add<TObject, TProperty, TValue>(Expression<Func<TObject, TProperty>> expression, TValue newValue) where TObject : IDomainObject
80+
public void Add<TObject, TProperty, TValue>(Expression<Func<TObject, TProperty>> expression, TObject obj, TValue newValue) where TObject : IDomainObject
8081
{
8182
var member = Lambdas.GetMemberExpression(expression);
8283
var name = Lambdas.GetMemberName(member);
8384
var desc = Reflection.Reflections.GetDisplayNameOrDescription(member.Member);
84-
var value = Lambdas.GetValue(expression);
85+
var value = member.Member.GetPropertyValue(obj);
8586
Add(name, desc, Conv.To<TValue>(value), newValue);
8687
}
8788

framework/src/Bing.Ddd.Domain/Bing/Domain/Entities/DomainObjectBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ protected virtual void AddChanges(TObject newObj) { }
9191
/// <typeparam name="TValue">值类型</typeparam>
9292
/// <param name="expression">属性表达式。范例:t => t.Name</param>
9393
/// <param name="newValue">新值。范例:newEntity.Name</param>
94-
protected void AddChange<TProperty, TValue>(Expression<Func<TObject, TProperty>> expression, TValue newValue) => _changeTrackingContext.Add(expression, newValue);
94+
protected void AddChange<TProperty, TValue>(Expression<Func<TObject, TProperty>> expression, TValue newValue) => _changeTrackingContext.Add(expression, AssignableType(this), newValue);
9595

9696
/// <summary>
9797
/// 添加变更

framework/tests/Bing.Tests/Applications/CrudServiceTest.Save.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ public async Task Test_SaveAsync_Add()
126126
[Fact]
127127
public async Task Test_SaveAsync_Update()
128128
{
129-
_repository.FindAsync(_id).Returns(t => new EntitySample(_id));
129+
_repository.FindAsync(_id).Returns(t => new EntitySample(_id) { Name = "a" });
130130
await _service.SaveAsync(new DtoSample { Id = _id.ToString(), Name = "b" });
131131
await _repository.DidNotReceive().AddAsync(Arg.Any<EntitySample>());
132132
await _repository.Received().UpdateAsync(Arg.Is<EntitySample>(t => t.Name == "b"));

tests/Bing.Tests.Samples/Bing/Tests/Samples/RepositorySample.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ public EntitySample(Guid id) : base(id) { }
4242
/// </summary>
4343
[IgnoreMap]
4444
public string IgnoreValue { get; set; }
45+
46+
/// <summary>
47+
/// 添加变更列表
48+
/// </summary>
49+
protected override void AddChanges(EntitySample other)
50+
{
51+
AddChange(x => x.Id, other.Id);
52+
AddChange(x => x.Name, other.Name);
53+
}
4554
}
4655

4756
/// <summary>

version.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<PropertyGroup>
33
<VersionMajor>2</VersionMajor>
44
<VersionMinor>2</VersionMinor>
5-
<VersionPatch>2</VersionPatch>
5+
<VersionPatch>3</VersionPatch>
66
<VersionQuality>20220104-1</VersionQuality>
77
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionPatch)</VersionPrefix>
88
<!--<VersionSuffix>preview-$(VersionQuality)</VersionSuffix>-->

0 commit comments

Comments
 (0)