2015-07-02 4 views
1

Я пытаюсь подготовить три запроса в моем классе mvc dbcontext, но, к сожалению, я столкнулся с этим. Я хотел бы иметь три запроса. Первый запрос для получения только данных, когда поле DTTM (datetime) больше, чем текущий день (с полуночи). Второй запрос тот же, но с двух дней назад (с полуночи) и третий запрос от 3 дней назад (с полуночи).Получить данные по дате с использованием linq

Поле DTTM в моей базе данных типа: DateTime и некоторые образцы:

2015-07-01 00:43:49.757 
2015-07-01 00:44:08.397 

это то, что я сделал до сих пор, но его не очень хорошо:

Dim programlogcontext As New ProgramLogContext 
' Dim programlog As List(Of ProgramLog) = programlogcontext.ProgramLog.ToList 

Dim programlog As List(Of ProgramLog) = programlogcontext.ProgramLog. 
    Where(Function(f) f.DTTM > Date.Now.AddDays(-1)). 
    ToList() 
Return View(ProgramLog) 
+0

_ «но это не хорошо» _ Почему? –

+0

после выполнения этого запроса я получаю это сообщение об ошибке, так или иначе я должен также отмечать дни (-1), но с полуночи и не знаю, как это сделать. сообщение об ошибке: Исключение типа «System.NotSupportedException» произошло в System.Data.Entity.dll, но не было обработано в коде пользователя Дополнительная информация: LINQ to Entities не распознает метод 'System.DateTime AddDays (Double)' метод, и этот метод не может быть переведен в выражение хранилища ». – Arie

+0

[' EntityFunctions.AddDays'] (https://msdn.microsoft.com/en-us/library/dd412479 (v = vs.110) .aspx) –

ответ

1

Использование Date.Today вместо Date.Now и EntityFunctions.AddDays вместо DateTime.AddDays , который не поддерживается.

Dim programlog As List(Of ProgramLog) = programlogcontext.ProgramLog. 
    Where(Function(f) f.DTTM > EntityFunctions.AddDays(Date.Today, -1). 
    ToList() 
+0

привет, похоже, это работает, но теперь его все еще не хватает, как получить сегодня дату и полночь, так что если сегодня 02.07.2015, я бы хотел быть f .DTTM> 02.07.2015 00:00:00 и второй случай за предыдущий день f.DTTM> 01.07.2015 00:00:00. Как достичь этого Тима? – Arie

+0

Тим вы можете поддержать на этом? – Arie

+0

@StackUser: i don Не понимаю uirement. Если вы хотите всех с сегодняшней полночь, и все со вчерашней полночь, вы действительно хотите всех от полуночи лет. Итак, что не так: 'Где (функция (f) f.DTTM> EntityFunctions.AddDays (Date.Today, -1)'? Она включает в себя также все записи сегодняшнего дня. –

Смежные вопросы