加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

sql-server-2005 – 用户定义的函数输出进行Nhibernate过滤

发布时间:2021-04-03 06:17:41 所属栏目:编程 来源:网络整理
导读:我是NHibernate的新手,到今朝为止统统都盼望顺遂,但我碰着了一个题目,我不确定怎样办理题目.根基上我必要通过用户界说函数的输出举办过滤.假如我在SQL中写这是我写的: declare @Latitude decimaldeclare @Longitude decimaldeclare @radius intset @Latitude

我是NHibernate的新手,到今朝为止统统都盼望顺遂,但我碰着了一个题目,我不确定怎样办理题目.根基上我必要通过用户界说函数的输出举办过滤.假如我在SQL中写这是我写的:

declare @Latitude decimal
declare @Longitude decimal
declare @radius int

set @Latitude = -118.4104684 
set @Longitude = 34.1030032

select  * 
from    store
where   dbo.CalculateDistance([Latitude],[Longitude],@Latitude,@Longitude) < @radius

我已经看到了我以为不吻合的公式属性,定名查询和建设本身的方言扩展的例子(这好像有点过度了).我会以为有更直接的方法,但我好像无法找到一个整洁的例子.

办理要领

您可以在hibernate查询中行使SQL表达式.假设您已映射了Store范例,则可以编写以下查询:
var result = session
    .CreateCriteria<Store>()
    .Add(Expression.Sql(
        "dbo.CalculateDistance({alias}.Latitude,{alias}.Longitude,?,?) < ?",new object[] { 
            -118.4104684d,34.1030032d,100 
        },new IType[] { 
            NHibernateUtil.Double,NHibernateUtil.Double,NHibernateUtil.Int32 
        }
    ))
    .List<Store>();

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读