Этот ответ является ответом на комментарии, которым нужен пример решения, предоставленного @ John Sheehan - Runscope
Пожалуйста, предоставьте пример для остальных из нас.
в DAL (уровень доступа к данным),
Версия IEnumerable:
public IEnumerable<Order> GetOrders()
{
// i use Dapper to return IEnumerable<T> using Query<T>
//.. do stuff
return orders // IEnumerable<Order>
}
Версия IQueryable
public IQueryable<Order> GetOrdersAsQuerable()
{
IEnumerable<Order> qry= GetOrders();
//use the built-in extension method AsQueryable in System.Linq namespace
return qry.AsQueryable();
}
Теперь вы можете использовать версию IQueryable для привязки, например, GridView в Asp.net и использовать преимущества для сортировки (вы не можете сортировать, используя версию IEnumerable)
Я использовал Dapper в качестве ORM и собрал версию IQueryable, а так легко использовал сортировку в GridView в asp.net.