Entity framework 将日期时间转换为时间戳的动态表达式

Entity framework 将日期时间转换为时间戳的动态表达式,entity-framework,entity-framework-5,db2-400,Entity Framework,Entity Framework 5,Db2 400,在对实体框架5-db2400数据库中的实体运行原始linq语句时,此where子句将呈现为良好的SQL,并根据需要执行: where entity.Number == stringNumber && entity.EffectiveDate == effectiveDate 呈现的SQL子句: WHERE (Filter1.NUMBER = @p__linq__0) AND (Filter1.EFFECTIVE_DATE = @p__linq__1)} 但是,当动态生成具有相

在对实体框架5-db2400数据库中的实体运行原始linq语句时,此where子句将呈现为良好的SQL,并根据需要执行:

where entity.Number == stringNumber && entity.EffectiveDate == effectiveDate
呈现的SQL子句:

WHERE (Filter1.NUMBER = @p__linq__0) AND (Filter1.EFFECTIVE_DATE = @p__linq__1)}
但是,当动态生成具有相同日期时间比较的表达式时,SQL将作为字符串转换的时间戳发送到DB2400。DB2说,“我不能比较时间戳和日期!”(因为该列在表中的类型是Date)

渲染表达式:

Entity => ((Entity.Number == "somestring") And (Entity.EffectiveDate == 10/1/2012 12:00:00 AM))
呈现的SQL:

WHERE (('someString' = Extent1.NUMBER)) AND (CAST('2012-10-01 00:00:00.00000' AS timestamp) = Extent6.EFFECTIVE_DATE)}
这个日期时间表达式是如何构建的

Expression.Equal(Property, DateTime.Parse(someDateTime.ToString()));