// Loop each users profile
using (DataClassesDataContext db = new DataClassesDataContext())
{
var q = (from P in db.tblProfiles orderby P.UserID descending select new { LastUpdated = P.ProfileLastUpdated, UserID = P.UserID }).ToList();
foreach(var Rec in q){
string Username = db.tblForumAuthors.SingleOrDefault(author => author.Author_ID == Rec.UserID).Username;
AddURL(("Users/" + Rec.UserID + "/" + Username), Rec.LastUpdated.Value, ChangeFrequency.daily, 0.4);
}
}
這是爲我的站點地圖打印系統上每個用戶配置文件的URL。但是,假設我們有20,000個用戶,用戶名查詢是否會顯着減緩這種情況?Linq加入效率問題
我習慣於在SQL查詢中進行連接,但將它與主查詢分開,並且在循環中看起來好像效率很低,除非編譯得很好。
對它調用'ToList()'會不必要地降低它的速度。因爲您只是通過集合進行枚舉,所以不需要在那裏。它將受益於使用實際的連接,因爲它不會在本地運行,而是在服務器上運行。 – 2011-03-29 18:59:15