C# 使NHibernate对DateTime.Date使用TRUNC
我有一个具有C# 使NHibernate对DateTime.Date使用TRUNC,c#,.net,nhibernate,linq-to-nhibernate,C#,.net,Nhibernate,Linq To Nhibernate,我有一个具有DateTime属性的实体,该实体映射到Oracle数据库中的表 以下查询使用不存在的date函数而不是trunc,生成NHibernate: session.Query<MyEntity>().Where(x => x.MyProperty.Date = myDate); session.Query().Where(x=>x.MyProperty.Date=myDate); 生成的SQL如下所示: select <columns> from MY_
DateTime
属性的实体,该实体映射到Oracle数据库中的表
以下查询使用不存在的date
函数而不是trunc
,生成NHibernate:
session.Query<MyEntity>().Where(x => x.MyProperty.Date = myDate);
session.Query().Where(x=>x.MyProperty.Date=myDate);
生成的SQL如下所示:
select <columns> from MY_ENTITY where date(MY_PROPERTY) = :p0;
从MY_实体中选择日期(MY_属性)=:p0;
如何告诉NHibernate改用trunc
我使用的是NHibernate(OracleDataClientConfiguration.Oracle10
)的ODP.NET提供程序。以前是,但尚未发布稳定版本(截至2012年2月15日)
在此之前,只需从Oracle10gDialante
继承并在构造函数中注册函数:
RegisterFunction("date", new StandardSQLFunction("trunc", NHibernateUtil.Date));
然后将NH配置为使用修改后的方言。谢谢,这是我在此期间已经做过的。很高兴知道它已修复!:-)