我正在使用Entity Framework 4.1和C#。比較實體框架4.1中的Any()與Count()生成查詢的性能
哪一種最適合最佳性能?
如果是這樣 - 爲什麼? (有更多閱讀的鏈接)?
bool isBoarding = invoice.Allocations.Where(a => a.Service.Key == "boarding").Count() > 0;
OR
bool isBoarding = invoice.Allocations.Any(a => a.Service.Key == "boarding");
'Any'是更具可讀性和通常更有效,因爲它可以使用'EXISTS'。但在Linq-To-Entities中,您應該查看生成的sql。 [有時](http://stackoverflow.com/a/11042691/284240)'計數'似乎更快。對於Linq-To-Objects [always](http://stackoverflow.com/a/305156/284240)使用'Any'。 –
感謝您的有用鏈接。 – Sampath