请原谅我对这个问题的认识不足,因为它很基本,但我有一个可为空的 [DateTime]列,我想使用LINQ查询来选择记录每个用户通过连接找到的最大“时间戳”。查找LINQ查询中的MAX日期加入
这是我目前的查询。
return (from t1 in db.BU
from t2 in db.UserNames
.Where(t => (t.User_Username == t1.Username))
from t3 in db.Logins
.Where(t => (t.username == t1.Username))
where myBusinessUnits.Contains(t1.BusinessUnit_ID)
orderby (t2.Name) descending
select new GlobalMyTeamDetailModel
{
LastLogin = t3.timestamp,
Name = t2.Name
});
如果有人能帮助我,我会很感激。
这是我想要为每个用户获取的“登录”表的最大值。
编辑:另一种尝试,其并没有得到预期的结果:通过时间戳
var result =
(from t1 in db.LoginHistories
where t1.username == user
from t2 in db.UserNames
.Where(t => (t.User_Username == t1.username))
from t3 in db.UserBusinessUnits
.Where(t => (t.Username == t1.username))
where myBusinessUnits.Contains(t3.BusinessUnit_ID)
group t1 by new { t1.username } into g
let MaxDate = g.Max(uh => uh.timestamp)
select new GlobalMyTeamDetailModel
{
LastLogin = MaxDate,
Name = g.Key.username
});
你真的有加入这些表?您可以通过将其中的用户名列分组,从登录表中获取最后一次登录。 –
我尝试了一些不同的东西,并将其添加到问题中。它仍然返回所有记录。你能推荐吗? – Nick