用户可以有很多地址,但我想为用户检索最新的条目。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