我有以下代码
var taskDTOs = await _repo.GetQueryable<TaskStatus>()
.Where(s => s.Tasks.Any(t =>t.CompanyId == _userContext.CompanyId &&
t.UserId == _userContext.UserId))
.ProjectTo<GetTaskListDTO>(_mapper.ConfigurationProvider)
.ToListAsync();
字符串
问题是,“Where”子句中的所有条件根本没有被应用,并且查询从不同的公司和不同的用户检索任务。为什么?
1条答案
按热度按时间wz3gfoph1#
字符串
不会过滤出检索到的任务,它只会过滤出
TaskStatus
,它没有用户和公司的任务,但会包括这些状态的所有任务(如果投影包括它们)。实际上,查询
TaskStatus
然后将其Map到GetTaskListDTO
有点奇怪,基于名称,听起来你应该只查询Task
然后构建DTO。沿着这些行:型
您可以引入一些中间DTO,将其与自动Map器合并结合起来。