Entity framework 将日期时间转换为时间戳的动态表达式
在对实体框架5-db2400数据库中的实体运行原始linq语句时,此where子句将呈现为良好的SQL,并根据需要执行: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)} 但是,当动态生成具有相
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()));