简单的SQL查询来LINQ
问题描述:
我有以下查询:简单的SQL查询来LINQ
SELECT FROM tblMailToSend
WHERE (DateToSend < @dateToSend OR DateToSend IS NULL) AND DateSent IS NULL
@dateToSend传递作为一个PARAM
我试图将其转换为LINQ to SQL的查询。
我有:
db.MailToSend.Where(m => m.DateToSend == null || m.DateToSend <= dateToSend)
.Where(m => m.DateSent == null)
但是,这是给下面的SQL:
SELECT *
FROM [dbo].[tblMailToSend] AS [t0]
WHERE ([t0].[DateSent] IS NULL) AND (([t0].[DateToSend] IS NULL) OR ([t0].[DateToSend] <= @p0))
这是给错误的结果...
Linq查询我需要什么匹配正确的(第一)sql?
答
,唯一不同的是,在你的LINQ语句中使用的是m.DateToSend <= dateToSend
而不是严格小于你的第一个SQL语句。所以改变这一点,一切都应该是正确的。
答
试试这个:
db.MailToSend.Where(m => (m.DateToSend == null || m.DateToSend <= dateToSend) && m.DateSent == null);
+0
工作的,如果我改变 Alex 2010-02-16 12:06:51
答
可能是一个错字,但你的SQL使用<,而你的LINQ的使用< =。除此之外,您的查询看起来应该会产生相同的结果。
答
在的LINQ问题,你有DateToSend < = @DateToSend(小于或等于),但在SQL查询,你只需要检查<
可能是愚蠢你只需从 2010-02-16 12:00:15