2013-10-22 45 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

它只是返回的IQueryable<T>interface將利用查詢提供商所考慮的對象採取行動(在你的情況下,model.FilteredPayment列表)的實例。當你在本地對List採取行動時,似乎並沒有什麼意義,但是在實體框架的情況下(例如),您可以通過SQL建立針對數據庫執行的查詢語句,Linq to Entities查詢提供程序將IQueryable處理成適當的SQL語句,以針對數據庫執行並處理結果。