【发布时间】:2021-06-15 20:44:42
【问题描述】:
多个复选框过滤器(动态)
过滤器=blue:1,red:1,ram16gb:2,ram38gb:2
.netcore 3.1 错误:无法翻译。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估。请参阅https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。
public async Task<IActionResult> Index(SearchOption searchOption, int pageSize = 10)
{
var query = _productRepo.Query()
.Include(x => x.AttributeValues)
.Where(x => x.InActive == true);
if (!string.IsNullOrWhiteSpace(searchOption.filter))
{
var list = searchOption.filter.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries)
.Select(item =>
{
var subItems = item.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
return new SplitFilter
{
AttributeId = Convert.ToInt64(subItems[1]),
Search = subItems[0],
};
}).ToList();
if (list?.Any() == true)
{
var attr = _modelAttributeValueRepository
.GetFind(x => list.Any(j => j.Search == x.Value && j.AttributeId == x.AttributeId))
.Select(x => x.ProductId);
query = query.Where(x => attr.Contains(x.ProductId));
}
}
return View(query.ToList());
}
【问题讨论】:
-
你能告诉我你把这些代码放在哪里了吗?这些代码在控制器内部运行良好。
-
写入控制器
标签: asp.net asp.net-core .net-core