2015-04-21 2 views
0

Я использую заявление LINQ, чтобы получить некоторые данные из таблицы на основе значения данных:Linq с условием ошибки данных («Date» не поддерживается в LINQ)

var oDay = diabeticDB.user_data 
        .Where(y => y.date >= DateTime.Now.Date 
          & y.BG != null 
          & y.userid == u) 
        .Average(x => x.BG).Value; 

я получаю следующее сообщение об ошибке:

The specified type member 'Date' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

+3

не решение текущей эмиссии (AFAIK), но вы, скорее всего, хотят заменить '&' на '&&'. –

ответ

3

выражение содержится в Where(...) преобразуется в SQL, а поставщик EF запрос (который делает это преобразование) не понимает DateTime.Now.Date.

Выражение может содержать определенное значение, хотя - таким образом, создать локальную переменную для текущей даты и использовать, что:

var today = DateTime.Now.Date; 

var oDay = diabeticDB.user_data 
    .Where(y => y.date >= today & y.BG != null & y.userid == u) 
    .Average(x => x.BG).Value; 
+1

это * нет * a постоянный. –

+1

@ DanielA.White Значение, используемое в выражении, является константой в терминах дерева выражений, а не с точки зрения того, что каждый раз является одним и тем же значением. –

+1

@CharlesMager Вы правы, но это все еще немного вводит в заблуждение, чтобы использовать это слово. – DavidG

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