【发布时间】:2019-12-25 09:58:19
【问题描述】:
我有一种方法可以获取按特定字段过滤的用户列表。这种方法对我的应用程序的很多功能都很有用,但在其他情况下太慢了。
用户的表有一个字段,里面有图片的数据,所以字段很重。现在我正在开发一个不需要这个字段的功能,我正在寻找不返回它的方法,或者将它作为空返回以简化流程
我正在使用 c#,使用“GetByFilter”函数从 UnitOfWork 存储库中获取经过过滤的用户列表。
UserController.cs
/// <summary>
/// Get by Filter
/// </summary>
/// <param name="filter">user filters</param>
/// <returns></returns>
[Route("functionRoute")]
[HttpPost]
public IHttpActionResult GetUsersByFilter([FromBody] UserFilter filter)
{
try
{
UserService service= new UserService ();
List<User> list = service.GetByFilter(filter).ToList();
List<UserCE> listCE = Mapper.Map<List<UserCE>>(list);
return Ok(listCE);
}
catch (Exception ex)
{
TraceManager.LogError(ex);
return InternalServerError(ex);
}
}
UserService.cs
public List<User> GetByFilter(UserFilter filter)
{
return _unitOfWork.UserRepository.GetByFilter(filter).ToList();
}
UserRepository.cs
public IQueryable<User> GetByFilter(UserFilter filter)
{
return Get_internal(filter);
}
private IQueryable<User> Get_internal(UserFilter filter)
{
IQueryable<User> users = _context.Users;
if (filter.Deleted != null)
{
users = users.Where(u => u.Deleted == filter.Deleted );
}
return users;
}
我稍后尝试清除列,但过程仍然过于繁重。我怎样才能简化这个过程?
【问题讨论】:
-
this SO 问题的可能重复项。
标签: c# filter repository iqueryable unit-of-work