semper fi
semper fi

Reputation: 737

get items from db between two dates: Exception thrown: 'System.NotSupportedException'

Trying to get items from db but getting System.NotSupportedException, found how to avoid but to me it doesn't help. Any ideas to how I can avoid this exception?

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();

Upvotes: 0

Views: 58

Answers (2)

RezaDefaei
RezaDefaei

Reputation: 76

You can use 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();

Upvotes: 1

stuartd
stuartd

Reputation: 73243

DbFunctions.TruncateTime truncates the time from the date, so there is no need to use .Value.Date, which is what is causing the exception.

Upvotes: 2

Related Questions