C#Linq to SQL Query不返回结果但生成的SQL工作正常?

时间:2015-04-14 22:26:08

标签: c# sql-server linq-to-sql

我正在尝试使用LINQ to SQL运行以下代码。我知道结果返回零。但是当我运行LINQ在SQL Server Management Studio中生成的关联SELECT语句并用值替换参数时,它返回结果。有什么想法吗?

var qryRes = (from res in dbHistoryContext.tblResumes
             where res.updateddate >= dtDateFrom.Date && res.updateddate <= dtDateTo.Date
            select res);

它返回SQL代码:

SELECT [t0].[resumehistoryid], [t0].[resumeid], [t0].[monsterid], [t0].[resumetitle], [t0].[updateddate], [t0].[updatedstatus], [t0].[source], [t0].[lastmodified], [t0].[modifiedby], [t0].[datechanged], [t0].[monsterhistoryid], [t0].[changetype]
FROM [dbo].[tblResume] AS [t0]
WHERE ([t0].[updateddate] >= @p0) AND ([t0].[updateddate] <= @p1)

其中@ p0 ='4/01/2015 12:00:00 AM' 和@ p1 = '04 / 30/2015 12:00:00 AM'

但由于某种原因,返回的SELECT语句在直接复制并粘贴并运行dbContexts数据库时有效,但是当我这样做时,LINQ to SQL似乎没有返回任何结果:

var lst = qryRes.ToList();

计数为零。有任何想法吗?我知道我的联系很好。我知道datacontext指向正确的数据库 - 看了好几次并多次刷新我的dbml。只是在尝试在另一个日期之间进行日期时才会发生这种情况。我所知道的可能很棘手。我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

我将不得不考虑与日期比较的问题。你能保证dtDateFrom.Date或dtDateTo.Date的格式与res.updateddate背后的格式相同吗?

另外,请尝试以下方法:

var qryRes = dbHistoryContext.tblResumes.Where(res => res.updateddate >= dtDateFrom.Date && res.updateddate <= dtDateTo.Date).ToList();