有没有办法从其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
功能? (作为扩展方法是否无关紧要)
答案 0 :(得分:8)
如果您不想订购;不要订购它。没有可靠的方法可以通过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);