Я сейчас полностью расстроен. У меня проблема с LINQ-To-SQL. Около 80% времени он отлично работает, и мне это нравится. Другие 20% времени, запрос, который создает L2S, возвращает правильные данные, но при фактическом запуске его из кода он ничего не возвращает. Я собираюсь вытащить волосы. Я надеюсь, что кто-то может увидеть проблему или слышал об этом раньше. Поиск в Google не возвращает ничего.C# - Linq-To-SQL - Проблема с запросами
Вот запрос LINQ ...
var query = from e in DataLayerGlobals.GetInstance().db.MILLERTIMECARDs
where e.deleted_by == -1
&& e.LNAME == lastName
&& e.FNAME == firstName
&& e.TIMECARDDATE == startDate.ToString("MM/dd/yyyy")
group e by e.LNAME into g
select new EmployeeHours
{
ContractHours = g.Sum(e => e.HRSCONTRACT),
MillerHours = g.Sum(e => e.HRSSHOWRAIN + e.HRSOTHER),
TravelHours = g.Sum(e => e.HRSTRAVEL)
};
Это сгенерированный запрос ....
SELECT SUM([t0].[HRSCONTRACT]) AS [ContractHours],
SUM([t0].[HRSSHOWRAIN] + [t0].[HRSOTHER]) AS [MillerHours],
SUM([t0].[HRSTRAVEL]) AS [TravelHours]
FROM [dbo].[MILLERTIMECARD] AS [t0]
WHERE ([t0].[deleted_by] = @p0)
AND ([t0].[LNAME] = @p1)
AND ([t0].[FNAME] = @p2)
AND ([t0].[TIMECARDDATE] = @p3)
GROUP BY [t0].[LNAME]
Теперь, когда я включаю в том же значениях, что запрос LINQ использует в сгенерированный запрос я получаю правильные данные. Когда я запускаю код, я ничего не получаю.
Любые идеи?
TIMECARDDATE - это строка. Да, да, я знаю. Я унаследовал эту базу данных, и ее изменение не является вариантом. Возможно, это проблема. Он работает, когда дата 10/19/2009, но не работает, когда дата 10/5/2009. Будет ли это проблемой SQL Server или проблемой LINQ? –
@ Eclipsed4utoo Ваш комментарий о неудаче на 10/5/2009 и тот факт, что даты db - это просто строки, заставляет меня думать, что ваша строка формата должна быть «MM/d/yyyy» вместо этого, чтобы вы получили «10/5/2009 «а не« 10/05/2009 », как ваш текущий код. – imaginaryboy
Чувак ... ты такой потрясающий. Вот и все. Я закончил тем, что использовал «M/d/yyyy», поэтому в месяцах не было бы ведущего 0, которое, похоже, также вызывало проблему. –