2013-10-22 1 views
0

온라인 코드 몇 줄을 발견했으며 처음 두 줄을 이해합니다. 특정 유형의 데이터는 캐싱되어 아래 모델의 두 속성에 저장됩니다.Mvc : IQueryable 및 Asqueryable의 사용이 명확하지 않습니다.

model.payment = (List<CompInfor>)HttpRuntime.Cache[cacheKey + "_received"]; 
model.FilteredPayment = (List<CompInfor>)HttpRuntime.Cache[cacheKey + "_received"]; 

그러나 아래 코드는 본 적이 없으므로 아래 라인을 이해하지 못합니다. 이 줄은 무엇을 하시겠습니까? 무슨 뜻이에요? IQueryable을 사용하여 많은 리소스를 절약 할 수 있다는 것을 알고 있습니다.

IQueryable<CompInfor> payment = model.FilteredPayment.AsQueryable<CompInfor>(); 

답변

0

그것은 단순히 (귀하의 경우는 model.FilteredPayment 목록) 해당 개체에 따라 행동하는 쿼리 제공자를 사용합니다 IQueryable<T>interface의 인스턴스를 반환합니다. 로컬로 List에 대항하여 행동 할 때 많은 의미가있는 것처럼 보이지 않지만, SQL, Linq to Entities 쿼리를 통해 데이터베이스에 대해 실행될 쿼리 문을 작성하는 엔티티 프레임 워크의 경우 (예를 들어) 공급자는 IQueryable을 적절한 SQL 문으로 처리하여 데이터베이스에 대해 실행하고 결과를 처리합니다.