Linq to Sql проблема с Long DateTime - PullRequest
2 голосов
/ 27 января 2011

Проблема: столбец Sql dateTime, который содержит устаревшие данные с временными ограничениями. У меня есть форма MVC с селектором даты, которая позволяет пользователям выбирать дату и возвращать все записи из БД, которая имеет эту дату.

Проблема, однако, заключается в том, что linq to sql является литералом модели данных, и я не могу привести столбец datetime к дате только для сравнения. вот фрагмент кода

myDateSelected = 27.01.2011
p.PostedDate в базе данных будет равно примерно 27/01/2001 17: 09: 00

var p from products
where p.PostedDate == myDateSelected
select p

Как я могу разыграть p.PostedDate, чтобы убрать элемент времени, чтобы сработало сравнение?

довольно плохо знаком с Linq и пока не может найти решение моей проблемы.

Ответы [ 2 ]

5 голосов
/ 27 января 2011

Я предполагаю, что p.PostedDate является объектом DateTime. Если это правда, это должно сделать это.

var p from products
where p.PostedDate.Date == myDateSelected
select p
2 голосов
/ 27 января 2011

Вы можете позвонить DateTime.Date, чтобы усечь элемент времени, и LINQ-to-SQL переведет это в SQL для вас:

var p from products
where p.PostedDate.Date == myDateSelected
select p

будет переведено в нечто вродеэто:

-- Region Parameters
DECLARE @p0 DateTime = '2010-02-24 00:00:00.000'
-- EndRegion
SELECT [t0].[PostedDate]
FROM [Products] AS [t0]
WHERE CONVERT(DATE, [t0].[PostedDate]) = @p0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...