Tôi đang sử dụng phiên bản NHibernate 2.0.0.4000.NHibernate: Không có persister cho NHibernate.Criterion.SqlFunctionProjection
Trong một trong các truy vấn của tôi, tôi muốn sử dụng hàm sql dateadd để thêm một số ngày. Điều này đã không được đăng ký vì vậy tôi đã tạo ra phương ngữ riêng của mình và đã đăng ký chức năng như sau:
RegisterFunction("adddays",
new SQLFunctionTemplate(NHibernateUtil.DateTime,
"dateadd(dd, ?1, ?2)"));
Đăng ký bị truy cập và có vẻ hoạt động tốt. Tôi sử dụng hàm trong truy vấn DetachedCriteria như sau:
...
Restrictions.LtProperty("DateColumn1"
Projections.SqlFunction("adddays", NHibernateUtil.DateTime,
Projections.Constant(days),
Projections.Property("DateColumn2"))
...
Tiêu chí được trả về từ phương thức và được chuyển cho truy vấn khác. Khi thực hiện truy vấn cuối cùng, tôi nhận được ngoại lệ sau:
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)
...
Không có bài đăng trên blog mà tôi đã thấy đề cập đến vấn đề này. Ai có thể giúp được không?
Cổ vũ trước. Nige.