【问题标题】:'Task<User>' does not contain a definition for 'LastActive'“Task<User>”不包含“LastActive”的定义
【发布时间】:2019-12-04 02:18:06
【问题描述】:

这是我的 .cs 代码,其中正在生成错误(第 23 行):“Task”不包含“LastActive”的定义,并且没有可访问的扩展方法“LastActive”接受“Task”类型的第一个参数被发现

using System.Security.Claims;
using System.Threading.Tasks;
using DatingApp.Data;
using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.Extensions.DependencyInjection;
using DatingApp.Models;
namespace DatingApp.Helper
{
    public class LogUserActivity : IAsyncActionFilter
    {
        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
        {
            var resultContext = await next();

            var userId = int.Parse(resultContext.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier).Value);

            var repo = resultContext.HttpContext.RequestServices
                .GetService<IUserRepository>();

            var user = repo.GetUserById(userId);

            user.LastActive= DateTime.Now;
            await repo.SaveAll();
        }
    }
}

这是我的仓库

 public async Task<User> GetUserById(int id)
        {
            var user =await  _context.Users.Include(p=>p.Photos).FirstOrDefaultAsync(u=>u.Id==id);
            return user;
        }

【问题讨论】:

    标签: c# asp.net-core asp.net-web-api


    【解决方案1】:

    GetUserById 不返回User,而是返回Task&lt;User&gt;。你需要等待它来获取User

    var user = await repo.GetUserById(userId);
    

    【讨论】:

      猜你喜欢
      • 2012-08-04
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多