請原諒我對這個問題的認識不足,因爲它很基本,但我有一個可爲空的 [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