日期比较条件在Entity Framework 5查询中不起作用 - 代码优先 - DB2数据库

时间:2014-06-23 19:35:47

标签: .net db2 entity-framework-5

我使用Entity Framework 5连接到DB2数据库(代码优先)。

我尝试在两个日期之间进行简单比较,作为我的WHERE子句的条件:

        using (MEW_Context context = new DataAccess.MEW_Context())
        {
            var query = context.MIList.AsQueryable();

            DateTime today = DateTime.Today;
            DateTime lastSunday = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek);

            query = query.Where(i => lastSunday != today && lastSunday <= i.ScheduleDate);
        }

生成的SQL:

SELECT 
Extent1.ITEM_NO AS ITEM_NO
FROM TESTDB2.VLS_MISS_INST_SUM AS Extent1
WHERE (@p__linq__0 <> @p__linq__1) AND (@p__linq__2 <= Extent1.SCH_DATE)

我收到以下错误:

InnerException = {&#34; ERROR [42609] [IBM] [DB2] SQL0417N要准备的语句字符串包含参数标记作为同一运算符的操作数。&#34;}

我还注意到生成的SQL没有正确地将条件包装为要评估的单个语句。

有没有人对如何让这个日期比较条件起作用有任何建议?非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我不知道你想要实现的目标

lastSunday != 1-1-0001

因为那是做什么的。

仅仅因为lastSunday永远不会超过7天而且它总是有值而完成第二次比较就足够了。

显然,DB2查询提供程序不允许操作数对两个外部变量进行操作,仅对数据库列和变量进行操作。