我想知道在数据库命中方面执行这些操作有什么区别?由于ToList()扩展方法,第一个和第二个查询的结果是什么
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 :(得分:1)
我不能肯定,因为我看不到GetWidgetMetas()
正在做什么,但假设它返回了一个IQueryable<&gt ;,那么当.ToList()
是FindLast
时,数据库就会被点击调用。
Where
和widgetdet
方法不会搜索数据库,因为此时{{1}}是内存中的完整列表。