首页 > 解决方案 > 写入数据库并同时返回

问题描述

我有一种情况,我希望返回数据或将用户重定向到其他地方,同时将信息记录到数据库中。

我当前的代码类似于以下内容:

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);
}

我希望这个重定向用户,但单独登录到数据库,而不需要用户请求完成数据库更新。

一种解决方案是在控制器中创建一个单独的方法,然后将新的日志项发布到它,这将导致单独的请求,但是我想知道是否有更好的方法不需要添加额外的身份验证步骤和方法?

标签: c#entity-frameworkasp.net-core.net-coreentity-framework-core

解决方案


尝试代替 DbContext.SaveChangesAsync(); 等待 DbContext.SaveChangesAsync(); 或者只是 DbContext.SaveChanges(); 重定向将等到所有更改都保存。


推荐阅读