我正在尝试为可空的日期时间字段映射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函数,他应该留下它?
答案 0 :(得分:1)
我自己解决了这个问题,显然如果编写的sql函数是小写形式,它就可以工作。