我正在执行一个查询,以获取批处理的详细信息,我希望包括属于该批处理的记录计数,中间使用一些筛选器。
当前函数如下所示:
public async Task<IEnumerable<Batch>> GetAllBatchSummary(BatchFilter filter)
{
return await _dbContext.Batch
.Where(b => b.BatchDetails.Count(bd => bd.RecordStatus == filter.RecordStatus) > 0)
.Include(b => b.ProcessType)
.OrderBy(b => b.ProcessTypeId)
.Select(b => new
{
Batch = b,
BatchDetailsCount = b.BatchDetails.Count(bd => bd.RecordStatus == filter.RecordStatus)
})
.Skip((filter.PageNumber - 1) * filter.PageSize)
.Take(filter.PageSize)
.ToListAsync();
}
但是它得到了一个错误,因为返回类型不是预期的类型:
CS0266无法隐式转换类型“系统.集合.泛型.列表〈〈匿名类型:PaymentGateway.Domain.Entities.ProcessControl.Batch批处理,int BatchDetailsCount〉〉'到'System.Collections.Generic.IEnumerable<PaymentGateway.Domain.Entities.ProcessControl.Batch>'。存在显式转换(是否缺少转换?)
我已经尝试过使用SelectMany()和.AsEnumerable(),但没有成功。
有什么建议吗?
1条答案
按热度按时间ppcbkaq51#
您的方法正在返回一个类型,但需要
Task<IEnumerable<Batch>>
创建一个类似
BatchDto
的模型,并将属性Map到那里。