Попытка получить элементы из db, но получить System.NotSupportedException, обнаружила, как избежать, но мне это не помогает. Есть идеи, как я могу избежать этого исключения?

return await DbContext.Members.Where(
     x => x.ClientId == criteria.ClientId 
         && DbFunctions.TruncateTime(x.CreatedOn).Value.Date 
                  >= criteria.StartDate.Value.Date 
         && DbFunctions.TruncateTime(x.CreatedOn).Value.Date 
                  <= criteria.EndDate.Value.Date
    ).ToListAsync();
0
Vitaliy 25 Ноя 2016 в 16:56

2 ответа

Лучший ответ

DbFunctions.TruncateTime отсекает время от даты, поэтому нет необходимости использовать .Value.Date, который является причиной исключения.

2
stuartd 25 Ноя 2016 в 14:15

Вы можете использовать EntityFunctions.TruncateTime :

return await DbContext.Members.Where(
                        x => x.ClientId == criteria.ClientId &&
                        EntityFunctions.TruncateTime(x.CreatedOn) >= criteria.StartDate.Value.Date &&
                        EntityFunctions.TruncateTime(x.CreatedOn) <= criteria.EndDate.Value.Date
                        ).ToListAsync();
1
RezaDefaei 25 Ноя 2016 в 14:24