Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
生成的C#LINQ查询日期时间文本_C#_.net_Linq_Nhibernate_Firebird - Fatal编程技术网

生成的C#LINQ查询日期时间文本

生成的C#LINQ查询日期时间文本,c#,.net,linq,nhibernate,firebird,C#,.net,Linq,Nhibernate,Firebird,我们使用以下代码生成SQL代码,以查询firebird数据库 DSRCash.GetAll(x => x.Account.ID == Account.ID && x.Date_Record <= dateTO && x.Date_Record >= dateFROM).ToList(); DSRCash.GetAll(x=>x.Account.ID==Account.ID &&

我们使用以下代码生成SQL代码,以查询firebird数据库

DSRCash.GetAll(x => x.Account.ID == Account.ID
                 && x.Date_Record <= dateTO
                 && x.Date_Record >= dateFROM).ToList();
DSRCash.GetAll(x=>x.Account.ID==Account.ID
&&x.Date_Record=dateFROM).ToList();
dateTO和dateFROM参数都是不可为空的DateTime,这对于它们各自的数据库列是相同的

生成的SQL where子句如下所示

where  (struct_cas0_.DELETED IS NULL)
       and struct_cas0_.ACCOUNT_ID = 372 /* @p0 */
       and struct_cas0_.DATE_RECORD <= '2011-02-18T13:00:00.00' /* @p1 */
       and struct_cas0_.DATE_RECORD >= '2010-02-17T13:00:00.00' /* @p2 */
其中(struct\u cas0\u0.DELETED为空)
和struct_cas0_u.ACCOUNT_ID=372/*@p0*/
和struct_cas0_.DATE_RECORD='2010-02-17T13:00:00.00'/*@p2*/
您可以看到DateTime文本已使用“s”或标准可排序格式格式化。Firebird似乎不支持此日期格式,如果我们从datetime文本中删除“T”,查询将成功执行

是否可以将正在执行的日期时间转换更改为字符串


我还应该提到,我们正在使用NHibernate作为这个项目的ORM。

我想你可以使用一个表达式访问者,当遇到日期时,它有两条路径。 1.如果它是一个常量-将其替换为格式正确的字符串,并转换为日期时间 2.如果是MemberExpression,则不执行任何操作

这会将您的sql更改为

其中(struct\u cas0\u0.DELETED为空) 和struct_cas0_u.ACCOUNT_ID=372/*@p0*/
和struct_cas0.DATE_RECORD=CAST('2010-02-18'为DATETIME)/*@p2*/

这是Ayende的探查器吗?它试图告诉你这实际上是一个参数-@p1/@p2-,所以它实际上归结为:@p1/@p2是如何声明的?作为[n][var]char?还是作为约会时间?为什么要问两次?是的,SQL输出来自探查器。你是在暗示这个问题可能与NHibernate创建参数有关吗?Daniel。。。因为在调查之后,我假设问题与数据库无关,而是由表达式生成的SQL。我犯了罪吗?我同意。。。我们可以关闭(删除)或指向上一个问题吗。我真是个新手!