그 목적은 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
이러한 확장 메서드 의 버전은 일단 실행되면 동일한 작업을 수행하는 Expression을 구축합니까? 내 주요 질문은 사용에 대한 실제 사용 사례는 AsQueryable
무엇입니까?