我正在编写一个用于设置LastAccessDate
用户属性的操作过滤器。在从数据库检索用户记录时,我得到了NullReferenceException
。如何消除此异常?这是我的行动过滤器:
public class LogActivity : IAsyncActionFilter
{
public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var resultContext = await next();
var id = int.Parse(resultContext.RouteData.Values["id"].ToString());
var repo = resultContext.HttpContext.RequestServices.GetService<UserRepo>();
Console.WriteLine(id);
// var user = await repo.GetRespondent(id);
var user= repo.GetRespondent(id).Result; <========= Here Exception occurs
if (user != null)
{
user.LastAccessDate = DateTime.Now;
await repo.SaveAll();
}
}
}
以下是我的UserRepo
存储库的获取方法:
public async Task<User> GetRespondent(int id)
{
var user= await _context.User.FirstOrDefaultAsync(u => u.Id == id);
if (user!= null)
return user
return null;
}
替换此行
var user= repo.GetRespondent(id).Result; <========= Here Exception occurs
带有
var user = await repo.GetRespondent(id);