- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下抽象类,我的所有存储库都继承自该抽象类:
abstract class RepositoryBase<T> {
void Add();
void Delete();
void SaveChanges();
}
我想添加另一种自动分页 IQueryable<T>
的方法并返回 List<T>
从结果来看:
protected List<T> Paginate(IQueryable<T> content, int? skip, int? take)
{
if (skip.HasValue) content = content.Skip(skip.Value);
if (skip.HasValue && take.HasValue) content = content.Take(take.Value);
return content.ToList();
}
但是,Skip
要求来源为 IOrderedQueryable<T>
.我尝试将方法签名更改为:
Paginate(IOrderedQueryable<T> content, int? skip, int? take)
但是Skip
返回 IQueryable<T>
所以我收到错误 Cannot convert source type 'System.Linq.IQueryable<T>' to target type 'System.Linq.IOrderedQueryable<T>'
我如何强制实现类向我的方法发送 IOrderedQueryable<T>
让我的分页方法起作用?
最佳答案
听起来你可能想要制作 Paginate
还是拿IOrderedQueryable<T>
在编译时验证您已经开始使用已订购的东西 - 但您不需要重新分配给同一个变量。例如:
protected List<T> Paginate(IOrderedQueryable<T> content, int? skip, int? take)
{
// Different variable type so that we can assign to it below...
IQueryable<T> result = content;
if (skip.HasValue) result = result.Skip(skip.Value);
if (skip.HasValue && take.HasValue) result = result.Take(take.Value);
return result.ToList();
}
正如 Marc 指出的那样,更改 Take
可能会更好线到:
if (take.HasValue) result = result.Take(take.Value);
关于c# - IOrderedQueryable 跳过并获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551777/
我有以下抽象类,我的所有存储库都继承自该抽象类: abstract class RepositoryBase { void Add(); void Delete(); void
context.EntitySet.AsEnumerable().OrderBy()返回 IOrderedEnumerable保证会被订购,但看起来排序是在客户端完成的。 context.Entity
应用于 Entity Framework ,扩展方法Select()和 OrderBy()都返回 ObjectQuery ,定义为: public class ObjectQuery : Object
我有 2 个表:Items 和 ItemMetrics。 Items 包含我的项目,ItemMetrics 包含有关这些项目的统计信息。 我正在尝试按相应的统计权重对项目列表进行排序。我使用子查询让它
调用 AsQueryable()在 IOrderedEnumerable 上在 IEnumerable 上调用扩展方法并返回 IQueryable而不是 IOrderedQueryable . 这对我
我有一个 IQueryable。我没有对其调用 OrderBy 或以其他方式对其进行任何操作。 如果我这样做: // for some reason, isItOrdered is always tr
我要返回一个 IOrderedQueryable像这样: response.Data = Expressions .ApplySorts(request, result) .Skip(
我有一个通用方法,我使用 IQueryable并返回 IOrderedQuerable使用 Linq-to-Entities。 一个简单的input.OrderBy(p => p.something)
我有以下 LINQ 代码: var posts = (from p in db.Posts .Include("Site") .Include("PostS
我想创建一个排序通用 Func Creating Func, IOrderedQueryable>在扩展方法中: public static Func, IOrderedQueryable> GetO
我想创建 Func, IOrderedQueryable>来自 SortingItems 的列表动态地。我的意思是我想创建以下表达式: entity => entity.OrderBy(c => c.
我正在使用这里提到的模式 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-rep
我正在尝试实现 EF 提供的分页功能。我以为我只需要将简单的 Skip() 和 Take() 添加到我的查询中,但后来我收到了这条消息: Error 4 'System.Linq.IOrderedQu
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: LINQ2SQL: Cannot convert IQueryable<> to IOrderedQuery
我是一名优秀的程序员,十分优秀!