我正在使用NHibernate版本2.0.0.4000。NHibernate:沒有持久性NHibernate.Criterion.SqlFunctionProjection
在我的一個查詢中,我想利用sql函數dateadd來添加一些天。這是沒有註冊,所以我創造了我自己的方言和註冊的功能如下:
RegisterFunction("adddays",
new SQLFunctionTemplate(NHibernateUtil.DateTime,
"dateadd(dd, ?1, ?2)"));
登記被擊中,似乎很好地工作。我使用DetachedCriteria查詢中的函數如下:
...
Restrictions.LtProperty("DateColumn1"
Projections.SqlFunction("adddays", NHibernateUtil.DateTime,
Projections.Constant(days),
Projections.Property("DateColumn2"))
...
條件從方法返回並傳遞給另一個查詢。在最終的查詢的執行,我得到以下異常:
NHibernate.MappingException was caught
Message="No persister for: NHibernate.Criterion.SqlFunctionProjection"
Source="NHibernate"
StackTrace:
at NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName,
Boolean throwIfNotFound)
at NHibernate.Impl.SessionFactoryImpl.GetEntityPersister(String entityName)
...
,我已經看到提到這個問題的博客文章都沒有。任何人都可以幫忙嗎?
提前歡呼。 尼日爾。