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();
我正在关注 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();