c# - 写入数据库并同时返回
问题描述
我有一种情况,我希望返回数据或将用户重定向到其他地方,同时将信息记录到数据库中。
我当前的代码类似于以下内容:
public async Task<IActionResult> SendUser(string target)
{
Target dbTarget = await DbContext.Targets.SingleOrDefaultAsync(target => target.url == target);
dbTarget.LastAccess = DateTime.Now();
dbTarget.TimesAccessed = dbTarget.TimesAccessed++;
DbContext.Targets.Update(dbTarget);
DbContext.SaveChangesAsync();
Redirect(target);
}
我希望这个重定向用户,但单独登录到数据库,而不需要用户请求完成数据库更新。
一种解决方案是在控制器中创建一个单独的方法,然后将新的日志项发布到它,这将导致单独的请求,但是我想知道是否有更好的方法不需要添加额外的身份验证步骤和方法?
解决方案
尝试代替 DbContext.SaveChangesAsync(); 等待 DbContext.SaveChangesAsync(); 或者只是 DbContext.SaveChanges(); 重定向将等到所有更改都保存。
推荐阅读
- java - 按 Ctrl+A 正在更改 JTextPane 中的字体
- c - 用户输入的正奇数值小于 20 的 C 中的钻石打印
- android - android中挂起的线程是什么意思?
- javascript - 在完整日历中显示带有日期和时间的事件
- java - Firebase 助手错误:无法解决:firebase-messaging-15.0.0
- java - 在 Spring 中使用 Thymeleaf 获取表单数据时如何禁用空格修剪
- python - 使用集合(列表)理解的对称集合差异未给出预期结果
- javascript - 为什么循环不在定义的停止点停止?
- react-native - 如何播放来自 wistia、youtube、驱动器的视频?
- ruby-on-rails - 从 github 安装 gem 时出现捆绑问题