c# - 对为什么我没有可用的扩展方法感到困惑
问题描述
我正在实现一个工作单元模式(不是我的选择,我知道它被一些人认为是一种反模式)。我遇到了一个我不完全理解的情况。
我的通用回购构造函数:
this.context = context;
this.dbSet = context.Set<T>();
通用方法:
public virtual async Task<IEnumerable<T>> All()
{
return await dbSet.ToListAsync();
}
我使用它:
var languages = await _unitOfWork.Languages.All();
languages = languages.OrderBy(x => x.Order);
如上所示,我需要下一行以便使用 OrderBy,我不明白为什么。
第二个问题是,ToListAsync 假设返回一个列表,为什么我会得到一个 IENUMARABLE?
解决方案
第二个问题是,ToListAsync 假设返回一个列表,为什么我会得到一个 IENUMARABLE?
List
是一个实现IEnumerable
。检查“编程到接口”是什么意思?.
如上所示,我需要下一行以便可以使用 OrderBy,我不知道为什么。
_unitOfWork.Languages.All()
返回 a Task
,你应该得到它的解包结果IEnumerable
来应用OrderBy
它。
要使这项工作按您的预期进行,您应该申请OrderBy
等待的结果:
(await _unitOfWork.Languages.All()).OrderBy(x => x.Order);
推荐阅读
- tensorflow - 如何将 uint8 转换为 Eigen:half?
- keycloak - 使用 keycloak userinfo 端点获取用户角色
- python - REST API 端点在 Apache 上托管的 Vue + Flask 应用程序中不起作用
- ssl - 如何配置 Kubernetes 与 Google Cloud 使用的 SSL 证书?
- javascript - 将七段转换为数字
- r - 是否有用于组合不匹配列上的数据框的 R 函数?
- android - 无法通过 onClickListner 传递“this”参数错误
- javascript - 克隆类中实例化的数组
- javascript - Sequelize(?):存储在变量中的保存方法在调用时抛出错误:未处理的拒绝类型错误:无法读取未定义的属性“isNewRecord”
- c# - 将未知行数/列数的 CSV 读入 Unity 数组