1
我使用NHibernate 3.2,並具有以下型號:NHibernate的相關子查詢獲取單個項目
class User
{
public virtual int Id { get; set; }
public virtual string Username { get; set; }
public virtual IList<Log> Logs { get; set; }
}
class Log
{
public virtual int Id { get; set; }
public virtual User User { get; set; }
public virtual DateTime Date { get; set; }
}
現在,我要查詢用戶與療法最新的日誌條目的日期。
class UserDto
{
public int UserId { get; set; }
public string Username { get; set; }
public DateTime? LastLogDate { get; set; }
}
什麼是做使用NHibernate QueryOver或LINQ此查詢的最有效方法是什麼?
這是SQL查詢我想,紹:
SELECT u.Id as UserId,
u.Username as Username,
(SELECT TOP 1 l.Date
FROM [Userlog] l
WHERE l.User_id = u.Id) as LastLogDate
FROM [User] u
謝謝,這在我的特例中有效。然而,如果我不需要Date屬性,而是另一個不能聚合的屬性,我可以做些什麼,例如一個整數列代表一個枚舉? 我想有一個更一般的方式來投影我的子查詢的最上面一行。 –
當然,我會補充說,非常感謝 – dotjoe
!這工作得很好! –