2012-01-11 36 views
1

我想知道這些數據庫命中的執行有什麼區別?因爲ToList()擴展方法是什麼第一的結果和第二查詢linq findlast和其中的區別

List widgetdet = (from gid in GetWidgetMetas(SidebarDetailsId) 
       select gid).ToList(); 

var str=(widgetdet.FindLast(p => p.vcr_key == "ShowThumbnail").vcr_value // (1) 

var str=widgetdet.Where(p => p.vcr_key == "txttitle").First().vcr_value // (2) 
+0

GetWidgetMetas(SidebarDetailsId)'的返回類型是什麼? – AakashM 2012-01-11 14:24:57

+0

IList maztt 2012-01-11 14:26:06

回答

1

我不能肯定的,因爲我看不到有什麼GetWidgetMetas()是幹什麼的,但假設它返回一個IQueryable <>,那麼當.ToList()被調用時,數據庫將被命中。

由於widgetdet是當時內存中的完整列表,因此數據庫將不會被命中FindLastWhere方法。