有没有办法从其ordeyby子句中清除IQueryable?
例如,我们有一个返回有序查询的函数:
public IQueryable<SomeType> GetOrderedQuery()
{
var query = from item in db.itemsTable
where item.x != null
orderby item.y, item.z
select item;
return query;
}
我们还有另一个函数需要使用相同的查询,但需要使它无序:
public IQueryable<SomeType> GetUnorderedQuery()
{
var query = GetOrderedQuery();
query.RemoveOrders(); // How to implement a RemoveOrders function?
return query;
}
RemoveOrders
函数如何实现? (是否作为扩展方法都没有关系)
最佳答案
如果您不希望订购它;不要订购。没有可靠的方法来回溯IQueryable<T>
以获得较早的状态,更不用说从中间删除单个位了。我怀疑您想要两个查询:
public IQueryable<SomeType> GetUnorderedQuery()
=> db.itemsTable.Where(item => item.x != null);
public IOrderedQueryable<SomeType> GetOrderedQuery()
=> GetUnorderedQuery().OrderBy(item => item.y).ThenBy(item => item.z);
关于c# - 从其orderby子句中清除IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49383662/