// 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