У меня есть следующий SQL и результат:Фильтрация по простой дате SQL для синтаксиса Linq
SELECT EventTime FROM Incidents
-- RESULT --
2015-10-20 00:00:00.000
2015-10-20 05:00:00.000
2015-10-20 05:50:00.000
2015-10-20 07:00:00.000
2015-10-20 09:00:30.000
2015-10-21 05:00:00.000
2015-10-21 06:10:00.000
2015-10-22 09:10:00.000
Я использую следующий SQL для фильтрации обычной даты (SQL 2014):
SELECT DISTINCT CONVERT (Date, [EventTime]) AS EventDate FROM Incidents
-- RESULT --
EventDate
2015-10-20
2015-10-21
2015-10-22
Так очень простой в SQL. Для LINQ Я пытаюсь логику:
var q = db.TimeLines.Select(x => x.Time.Date).Distinct();
// show it
q.ToList().ForEach(x => { Console.WriteLine("EventDate: {0}", x); });
порывает с: Дополнительная информация: Указанный элемент типа «Date» не поддерживается в LINQ ...
... Как написать второй SQL в LINQ ?
Вы используете LINQ to SQL или Entity Framework? –
Для LINQ-to-SQL см. [This] (http://stackoverflow.com/questions/11663523/using-built-in-sql-functions-in-a-linq-query). Для платформы Entity Framework см. [This] (http://stackoverflow.com/questions/12412231/how-do-i-perform-date-part-comparison-in-ef). –
Проверьте [EntityFunctions.TruncateTime] (https://msdn.microsoft.com/en-us/library/dd395596 (v = vs.110) .aspx) – juharr