用戶可以有很多地址,但我想爲用戶檢索最新的條目。nhibernate,檢索表格中的最新行
在SQL我會做:
SELECT TOP 1 *
FROM UserAddress
WHERE userID = @userID
我怎樣才能創建一個具有相同的邏輯條件查詢?
是否有TOP功能?
用戶可以有很多地址,但我想爲用戶檢索最新的條目。nhibernate,檢索表格中的最新行
在SQL我會做:
SELECT TOP 1 *
FROM UserAddress
WHERE userID = @userID
我怎樣才能創建一個具有相同的邏輯條件查詢?
是否有TOP功能?
假設你有一些時間戳列(如InsertedAt):
User user = ...;
var crit = DetachedCriteria.For<UserAddress>()
.Add(Restrictions.Eq("User", user))
.AddOrder(Order.Desc("InsertedAt"))
.SetMaxResults(1);
This post有答案如何做到這一點,但你不應該總是依靠TOP
獲取最新的條目! (假設按時間順序排列)
使用時間/索引列根據時間戳記值獲取最新條目。
由於表格內容的排序可能會發生移動(重新編排等),所以我建議您有一些描述的時間戳以表明哪一個是最新的。然後獲取該字段排序的第一個。
woudl這行嗎? .SetMaxResults(1).UniqueResult(); ? –
Blankman
2010-04-25 21:47:41
是的。只有一行:) – dariol 2010-04-25 21:56:57