【发布时间】:2020-04-09 17:22:18
【问题描述】:
我使用 unitofwork 模式,它的生命周期是范围。我的控制器中有很多如下方法。我带来对象更改属性并保存它,然后我最终在actionfilter运行后返回该对象并记录并保存它。我的问题是我在filter中调用的unitofwork。它还保存了用户对象正在行动中,我不能保存那个对象。我该如何解决这个问题
public IActionResult ReadUserProfileImage(string id) {
IActionResult response = BadRequest();
var user = unitOfWork.User.FirstOrtDefault(u=>u.id==id);
user.Name="New name";
return Ok(user);
}
public override void OnActionExecuted(ActionExecutedContext filterContext) {
unitOfWork.Logs.Add(new CoreHelper.Core.Domain.Log() {
User = user,
ResultType = resultType,
Time = time,
Controller = controller,
Action = action,
Request = requestJson,
Response = responseJson,
Ip = ip.ToString(),
PcName = pcName,
Url = url,
ProcessTime = processTime,
LogCaption = logCaption,
LogDetail = logDetail,
IsBefore = isBefore
});
unitOfWork.Save();
}
【问题讨论】:
标签: .net-core unit-of-work action-filter