gpt4 book ai didi

c# - 使用 WhereIf 时找不到 .ToListAsync()

转载 作者:太空狗 更新时间:2023-10-30 00:22:49 24 4
gpt4 key购买 nike

我正在阅读 this tutorial .我想在 EF Core 中使用 async 查询。

当我这样使用时效果很好:

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();

但我想使用 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();

错误:

'IOrderedEnumerable' does not contain a definition for 'ToListAsync' and no extension method 'ToListAsync' accepting a first argument of type 'IOrderedEnumerable' could be found (are you missing a using directive or an assembly reference?)

最佳答案

您使用了错误的 WhereIf 扩展,很容易错过,因为您需要添加额外的使用 Visual Studio 不会提供。

您正在使用返回 IEnumerable 的扩展

Abp.Collections.Extensions.EnumerableExtensions.WhereIf<T>()

您需要使用返回 IQueryable 的扩展

Abp.Linq.Extensions.QueryableExtensions.WhereIf<T>()

这是一个简单的修复,只需在文件顶部添加 using Abp.Linq.Extensions;

关于c# - 使用 WhereIf 时找不到 .ToListAsync(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50192500/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com