在NHIbernate Formula中使用内置SQL函数

时间:2011-02-07 09:13:01

标签: nhibernate formula

我正在尝试为可空的日期时间字段映射NHibernate公式,如果列值为null,则使用GetDate()。

我使用的映射是:

Map(x => x.VirtualStartDate).Formula("ISNULL(StartDate, GETDATE ())");
在Fluent NHibernate中的

,转换为hbm,如下所示:

<property name="VirtualStartDate" formula="ISNULL(StartDate, GETDATE ())" type="System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 

当我尝试查询数据库时,NHibernate尝试将内置的GetDate()函数映射到表中的列:

ISNULL(workitem0_.StartDate, workitem0_.GETDATE()) as formula0_

这当然不起作用并返回SQL错误。 有没有办法告诉NHIbernate这是一个内置的SQL函数,他应该留下它?

1 个答案:

答案 0 :(得分:1)

我自己解决了这个问题,显然如果编写的sql函数是小写形式,它就可以工作。