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???
Entity Framework 5 を使用しています
私はLinqを学び始めています。どの即時実行関数が毎回 SQL を呼び出すかについて、私は本当に混乱しています。上記のサンプルでわかるように、ToList() と Count() はどちらも即時実行関数ですが、Count() のみがサブシーケンス呼び出しで sql に接続します。ToList() は SQL に 1 回接続しますが、Count() は毎回 SQL に接続します。
どの linq 関数が sql を複数回呼び出さないかを特定するにはどうすればよいですか?