var costCenters = from c in dbContext.CostCenters //no sql call here
orderby c.DisplayRank descending
select c;
List<CostCenter> lstCostCenter = costCenters.ToList();//Immediate execution to sql the first time
lstCostCenter = costCenters.ToList();//no Sql call ??
int test = costCenters.Count();//Call Sql everytime
test = costCenters.Count();//Call Sql again???
我使用實體框架5如何識別哪些Linq函數不會多次調用sql?
我開始學習LINQ的。我真的很困惑,哪些即時執行函數每次都會調用SQL。正如你在上面的示例中看到的,ToList()和Count()都是立即執行函數,但是隻有Count()會在子序列調用上連接到sql。 ToList()連接到sql 1次,但Count()將每次連接到Sql。
如何識別哪些linq函數不會多次調用sql?
進一步閱讀後,我意識到緩存是由「強制執行」 – gavin