我在Web API项目中遇到了PaginatedList的问题.
在存储库中有一个方法,如:
public virtual PaginatedList<T> Paginate<TKey>(int pageIndex,int pageSize,Expression<Func<T,TKey>> keySelector,bool>> predicate,params Expression<Func<T,object>>[] includeProperties) { IQueryable<T> query = AllIncluding(includeProperties).OrderBy(keySelector); query = (predicate == null) ? query : query.Where(predicate); return query.ToPaginatedList(pageIndex,pageSize); }
但是,当我尝试使用它时,像这样:
var a = repository.Paginate<Region>(pageNo,pageSize,x => x.ID,null);
我收到此错误:
Cannot implicitly convert type ‘int’ to
‘Domain.Entities.Dictionaries.Region’
我究竟做错了什么?
解决方法
你的方法签名有TKey,我想是一个排序的键,但在你的调用中你指定整个对象Region,然后你在keySelector中指定int,所以它不能编译它,因为它尝试使用int类型作为TKey的区域类型.
我想你的样本应该是:
repository.Paginate<int>(pageNo,null);
通用类型T i假设是为整个类指定的,因此在此处应该没有在调用中指定它,因为存储库实例已经是特定于通用的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。