8
我使用LINQ廣泛在我的項目,到目前爲止表現不錯,我有,如果我已經使用LINQ的是這樣的LINQ的計數方法和性能
var getData = objData.where(obj => obj.isDelete ==false)
if (getData != null && getData.Count() > 0)
foreach(xyz as obj in getdata.ToList())
{
//some operation
}
不getData.Count(只有一個疑問)和getdata.ToList()在對象上執行兩個不同的提取?或者,當執行getData.Count()時,根據deffer加載概念,則不會爲.ToList執行任何操作。
如果不是那麼我應該刪除計數條件,它會提高性能?
我正在使用Enterprise Library 5.0 acessor方法從數據庫中獲取數據 List lstpack = new List();
var accessor = _sqlDatabase.CreateSprocAccessor<PackageForClient>("PackageForClientApp", MapBuilder<PackageForClient>
.MapAllProperties()
.Build()
);
var Data = accessor.Execute(startdate, enddate,beinh);
if (Data != null) //&& Data.Count() > 0 //This has been removed as it is doing an extra fetch
lstpack = Data.ToList<PackageForClient>();
現在回到列表
太棒了!謝謝,這裏getData是Enterprise Library 5.0的結果集返回的對象列表,驚訝地發現它執行兩次存儲過程,一次我們調用getData的Count方法,另一個當ToList被使用時執行。 – Deepesh
在我的問題中只添加了一個代碼 – Deepesh
@Deepesh:你爲什麼驚訝地看到這個? 'getData'不是對象列表 - 它是*查詢*。調用'ToList'就是把它變成一個對象列表。 –