Linq to SQL中忽略DateTime子句

时间:2016-04-06 10:49:50

标签: linq linq-to-sql

我有以下LINQ查询

db.Documents.Where(x => x.PublicationId == db.PublicationId &&
                                         x.CancellationDate == null)

结果SQL忽略了CancellationDate子句并因此超时。

我使用其他日期字段尝试了相同的查询,但结果相同。

使用LINQ to SQL执行带日期子句的SQL是否缺少基本的东西?

编辑:

生成的SQL本质上是

   exec sp_executesql N'SELECT *
FROM [dbo].[Document] AS [t0]
WHERE [t0].[PublicationId] = @p0',N'@p0 uniqueidentifier',@p0='47892838-9B52-4A4C-B4A2-8302A3FF5F22'

CancellationDate的SQL类型是可为空的DateTime,DBML属性是Nullable,服务器数据类型DateTime和类型DateTimeSystem.DateTime

此外,如果我将LINQ更改为x.CancellationDate < DateTime.Now,则生成的SQL也不包含此子句。 !x.CancellationDate.HasValue具有相同的效果

0 个答案:

没有答案