我正在阅读本教程.我想使用async
EF Core查询.
当我使用这样的时候它很好用:
var tasks = await _taskRepository
.GetAll()
//.WhereIf(!string.IsNullOrEmpty(input?.Title), x => x.Title.Contains(input.Title))
//.WhereIf(input?.State != null, x => x.State == input.State.Value)
//.OrderByDescending(x => x.CreationTime)
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
但我想使用whereif和orderby之类的
var tasks = await _taskRepository
.GetAll()
.WhereIf(!string.IsNullOrEmpty(input?.Title), x => x.Title.Contains(input.Title))
.WhereIf(input?.State != null, x => x.State == input.State.Value)
.OrderByDescending(x => x.CreationTime)
.ToListAsync();
Run Code Online (Sandbox Code Playgroud)
错误:
'IOrderedEnumerable'不包含'ToListAsync'的定义,并且没有可以找到接受类型'IOrderedEnumerable'的第一个参数的扩展方法'ToListAsync'(您是否缺少using指令或程序集引用?)
让我先说明一下我的目标与我想要实现的目标
在控制器中,我以非常随机的未排序方式将所有类别放入单个通用列表中
var categories = new List<Category>(this.categoryService.GetCategories())
Run Code Online (Sandbox Code Playgroud)
每个类别都有4个属性,这里有Id,ParentCategoryId,SortOrder,Text
SortOrder只能应用于层次结构中同一级别的兄弟姐妹,并且子级必须始终位于其父级之下.文本必须通过在每个深度级别前加上".."来改变.
我希望这可以在考虑到性能的情况下正确完成,不希望多次循环遍历大量列表.
感谢您的任何意见.