Entity Framework возвращает 0 результатов, несмотря на данные в таблицах, когда в запросе используется `DbFunctions.DiffDays (DateTime.Now, c.ModifiedDate)` - PullRequest
0 голосов
/ 05 февраля 2019

Приведенный ниже код должен возвращать результат из table, который имеет status = 1, а данные старше 90 daystable есть много данных, которые имеют modified date больше, чем 90 days.

Но этот код возвращает 0 результатов.Ошибка datetime выдает ошибку, поэтому вместо нее используется DbFunctions, поскольку я использую EF - EF6.

IEnumerable<IncentiveClaim> claims = repository.Table
                      .Where(c => c.Status == 1 
                        && DbFunctions.DiffDays(DateTime.Now, c.ModifiedDate) >= 90)
                      .AsEnumerable();

1 Ответ

0 голосов
/ 05 февраля 2019

Метод имеет параметр как DbFunctions.DiffDays(smallestDateTime, LargestDateTime).Таким образом, ModifiedDate должен быть первым параметром, а DateTime.Now должен быть вторым параметром.Затем вы должны вызвать .Value для метода, чтобы получить no. of days.

Изменить код, как показано ниже:

IEnumerable<IncentiveClaim> claims = repository.Table
           .Where(c => c.Status == 1 
            && DbFunctions.DiffDays(c.ModifiedDate, DateTime.Now).Value >= 
            90)
            .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...