NHibernate中的标量值函数

时间:2010-03-20 03:04:46

标签: sql-server-2005 nhibernate user-defined-functions

我在MS SQL 2005中有以下标量函数:

CREATE FUNCTION [dbo].[Distance] ( @lat1 float,  @long1 float,@lat2 float, @long2 float )
RETURNS float
AS
BEGIN
    RETURN (3958*3.1415926*sqrt((@lat2-@lat1)*(@lat2-@lat1) + cos(@lat2/57.29578)*cos(@lat1/57.29578)*(@long2-@long1)*(@long2-@long1))/180);
END

我需要能够从我的NHibernate查询中调用此函数。我读了this article,但我陷入了一些我不明白的细节。

如果你在NHibernate中使用了标量函数,你能举例说明你的HBM文件如何找到这样的函数吗?

1 个答案:

答案 0 :(得分:0)

这不能在映射文件中配置,而是在方言中配置。您需要创建自定义方言并注册您的功能。例子: