gpt4 book ai didi

linq - NHibernate 3.0:没有QueryOver的FirstOrDefault()吗?

转载 作者:行者123 更新时间:2023-12-03 09:14:55 25 4
gpt4 key购买 nike

我正在使用LINQ提供程序和新的QueryOver语法玩FluentNHibernate和NH 3.0。

现在,使用QueryOver,我想获得一个时间戳值尽可能接近给定值但不更大的项目(称为结果):

 Result precedingOrMatchingResult = Session.QueryOver<Result>().
Where(r => r.TimeStamp < timeStamp).
OrderBy(r => r.TimeStamp).Desc.
FirstOrDefault(); //get the preceding or matching result, if there is any

现在,Intellisense告诉我,不存在 FirstOrDefault()方法。当然,我可以枚举排序的查询,然后使用LINQ来获取我的商品。但这会首先将所有项目加载到内存中。

可以使用FirstOrDefault()替代吗,还是我完全理解错误?

最佳答案

NH 3具有集成的LINQ提供程序(查询在内部转换为HQL / SQL)。您必须添加NHibernate.Linq命名空间,然后:

Result precedingOrMatchingResult = Session.Query<Result>().
Where(r => r.TimeStamp < timeStamp).
OrderByDescending(r => r.TimeStamp).
FirstOrDefault();

关于linq - NHibernate 3.0:没有QueryOver的FirstOrDefault()吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4554453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com