如果你看一下我们的街机主页:
在右上方有一个方框,显示最后一个玩这个游戏的人.在我正在使用的分析器中,它显示为运行900毫秒,这占总页面加载时间的大约80%.
查询相对简单:
// Recent players
using (MainContext db = new MainContext())
{
var q = (from c in db.tblArcadeGamePlays
join a in db.tblProfiles on c.UserID equals a.UserID
where c.UserID != 0
select new
{
c.UserID,
c.tblForumAuthor.Username,
a.EmailAddress,
Date = (from d in db.tblArcadeGamePlays where d.UserID == c.UserID orderby d.Date descending select new { d.Date }).Take(1).Single().Date
})
.Distinct()
.OrderByDescending(c => c.Date)
.Take(16);
Run Code Online (Sandbox Code Playgroud)
但这对我的需求来说太慢了.
这上面的输出缓存不合适,因为这个盒子实时很好.此外,即使对于一个用户来说,正常页面加载的900毫秒也太慢,所以如果可能的话,希望避免这种情况.
有没有人对如何加快这一点有任何想法?我目前的两个想法是:
两种丑陋!任何帮助赞赏.
根据要求,linqpad的结果
LAMBDA
TblArcadeGamePlays
.Join (
TblProfiles,
c => c.UserID,
a …Run Code Online (Sandbox Code Playgroud)