Использование встроенных функций SQL в формуле NHIbernate - PullRequest
0 голосов
/ 07 февраля 2011

Я пытаюсь сопоставить формулу NHibernate для обнуляемого поля даты и времени, которое будет использовать 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 Ответ

1 голос
/ 07 февраля 2011

Только что решил сам, по-видимому, это работает, если написана функция sql в нижнем регистре.

...