ASP.NET 在抛出 UserFriendlyException 之前插入日志到数据库

问题描述 投票:0回答:1

我想将日志插入数据库并抛出 UserFriendlyException 但它没有按我的预期工作

            if (isTodayOpen) //today open but time not valid
            {
                var logMessage = string.Format("The door cannot be unlocked. Your booking is not yet in effect. It is valid from {0} to {1}. Please try again later.", application.Rules.TimeFrom.ToString(), application.Rules.TimeTo.ToString());

                 var openDoorLogDetails = new OpenDoorLog();
                    openDoorLogDetails.ApplicantId = application.User.Id;
                    openDoorLogDetails.OpenDoorTime = DateTime.Now;
                    openDoorLogDetails.isOpenSuccessful = false;
                    openDoorLogDetails.LogMessage = logMessage;
                    await _openDoorLogRepository.InsertAsync(openDoorLogDetails);
                    CurrentUnitOfWork.SaveChanges();

                    throw new UserFriendlyException(logMessage);
            }

我在 Swagger 上得到了什么

{ “结果”:空, “目标网址”:空, “成功”:假, “错误”: { “代码”:0, "message": "门无法解锁。您的预订尚未生效。有效期为09:00:00至10:00:00,请稍后重试。", “详细信息”:空, “验证错误”:空 }, “未经授权的请求”:假, “__abp”:正确 }

即使我使用 CurrentUnitOfWork.SaveChanges();它也不起作用

c# asp.net-core aspnetboilerplate savechanges
1个回答
0
投票

当您想在存储库中使用异步操作时,您需要编写保存更改,如下所示:

await _openDoorLogRepository.InsertAsync(openDoorLogDetails);
await CurrentUnitOfWork.SaveChangesAsync();
© www.soinside.com 2019 - 2024. All rights reserved.