का उद्देश्य है AsQueryable()
सिर्फ इसलिए आप के चारों ओर एक पारित कर सकते हैं IEnumerable
तरीकों कि उम्मीद कर सकते हैं करने के लिए IQueryable
, या कोई प्रतिनिधित्व करने के लिए एक उपयोगी कारण है IEnumerable
के रूप में IQueryable
? उदाहरण के लिए, क्या यह इस तरह के मामलों के लिए होना चाहिए:
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();
}
या क्या यह वास्तव में कुछ अलग करता है:
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();
क्या IQueryable
इन विस्तार विधियों के संस्करणों में एक एक्सप्रेशन का निर्माण होता है जो एक ही बार निष्पादित होने के बाद समाप्त होता है? मेरा मुख्य सवाल यह है कि, उपयोग करने के लिए वास्तविक उपयोग का मामला क्या है AsQueryable
?