EF Core 数据库过滤器

EF Core database filter

我正在关注 this tutorial。我是 C# 的新手,需要一些帮助!

我正在尝试向 GetUsers 函数添加一项功能,以便能够在 else 语句中获取与“公司”关联的“用户”列表。 return 类型应该是 List<UserDTO> 类型(它在 if 语句中)。

然而,else 语句 return 是 List<User>。我如何告诉数据库查询 return a List<UserDTO>?

我收到此构建错误: 无法将类型 'System.Collections.Generic.List<TestProj.Models.User>' 隐式转换为'Microsoft.AspNetCore.Mvc.ActionResult>'

    [HttpGet]
    public async Task<ActionResult<IEnumerable<UserDTO>>> GetUsers(int? companyId)
    {
        if(companyId == null)
        {
            return await _context.Users.Select(x => UserToDTO(x)).ToListAsync();
        }
        else
        {
            return await _context.Users
                                        .Where(x => x.CompanyId == companyId)
                                        .ToListAsync(); 
        }
    }




 private static UserDTO UserToDTO(User user) =>
    new UserDTO
    {
        UserId = user.UserId,
        Name = user.Name,
        Email = user.Email,
        CompanyId = user.CompanyId
    };

提前致谢! :)

你可以尝试Select到UserDTO

      return await _context.Users
            .Where(x => x.CompanyId == companyId)
            .Select(x => new UserDTO
             {
                 UserId = x.UserId,
                 Name = x.Name,
                 Email = x.Email,
                 CompanyId = x.CompanyId
             }).ToList();