Ist der Zweck AsQueryable()nur so, dass Sie eine IEnumerableMethode weitergeben können, die Sie vielleicht erwarten IQueryable, oder gibt es einen nützlichen Grund, IEnumerableals darzustellen IQueryable? Zum Beispiel soll es für Fälle wie diesen sein:
IEnumerable<Order> orders = orderRepo.GetAll();
// I don't want to create another method that works on IEnumerable,
// so I convert it here.
CountOrders(orders.AsQueryable());
public static int CountOrders(IQueryable<Order> ordersQuery)
{
return ordersQuery.Count();
}
Oder macht es tatsächlich etwas anderes:
IEnumerable<Order> orders = orderRepo.GetAll();
IQueryable<Order> ordersQuery = orders.AsQueryable();
IEnumerable<Order> filteredOrders = orders.Where(o => o.CustomerId == 3);
IQueryable<Order> filteredOrdersQuery = ordersQuery.Where(o => o.CustomerId == 3);
// Are these executed in a different way?
int result1 = filteredOrders.Count();
int result2 = filteredOrdersQuery.Count();
IQueryableBauen die Versionen dieser Erweiterungsmethoden nur einen Ausdruck auf, der nach seiner Ausführung dasselbe tut? Meine Hauptfrage ist, was ist ein realer Anwendungsfall für die Verwendung AsQueryable?