2012-02-15 37 views
0

我有一個DateTime屬性映射到Oracle數據庫中的表的實體。使NHibernate使用TRUNC爲DateTime.Date

下面的查詢使用一個不存在的date功能,而不是trunc導致的NHibernate:

session.Query<MyEntity>().Where(x => x.MyProperty.Date = myDate); 

生成的SQL是這樣的:

select <columns> from MY_ENTITY where date(MY_PROPERTY) = :p0; 

如何告訴NHibernate的使用trunc代替?

我使用的是NHibernate的ODP.NET提供程序(OracleDataClientConfiguration.Oracle10)。

回答

2

This issuefixed about a month ago,但一個穩定的版本尚未發佈(15 /月/ 2012年)

等到那個時候,剛剛從Oracle10gDialect繼承並在構造函數註冊的功能:

RegisterFunction("date", new StandardSQLFunction("trunc", NHibernateUtil.Date)); 

然後配置NH使用修改後的方言。

+0

謝謝,這就是我在此期間所做的。很高興知道它是固定的! :-) – 2012-02-15 17:30:58