Linq динамический c запрос (за исключением - но SQL сторона SERVER) - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу вернуть записи, столбец даты которых превышает DateTime.Now.AddDays(-3), но только если столбец типа заполнен. Это означает, что я хочу вернуть все, кроме записей, которые старше 3 дней, и тип == complete (Enum 1).

Это почти так, как если бы мне нужно Except, но для этого мне нужно чтобы перечислить результаты, тогда у меня не будет номера моей страницы результатов (.Take (10)).

Как это будет сделано в linq? Я не могу понять, как будет выглядеть этот запрос. Я бы хотел, чтобы запрос выполнялся на SQL стороне сервера настолько, насколько это возможно, чтобы он был эффективным.

Просто чтобы было ясно - я хочу все результатов, ИСКЛЮЧИТЬ записи завершены и старше 3 дней.

(завершено, что означает значение столбца типа == 1 (Enum))

Мой проект .NetCore 3.1

Спасибо

Ответы [ 3 ]

0 голосов
/ 06 февраля 2020

Может как то так?

Results = context.Entity.Where(x => x.Date > DateTime.Now.AddDays(-3) || x.Type != YourEnum.Complete);
0 голосов
/ 06 февраля 2020

Может быть, это то, что вам нужно?

  Var results = context.Entity.Where(x=> x.Type != enum.Completed ||( x.Type == enum.Completed && x.Date >=DateTime.Now.AddDays(-3)));
0 голосов
/ 06 февраля 2020

Я не уверен, что вы подразумеваете под «типом» столбца, но я предполагаю, что это значение объекта, который вы ищете.

Тогда вы, вероятно, должны сделать что-то вроде:

var dateRange = DateTime.Now.AddDays(-3);
var results = _repository.Entity.Where(w => w.Date >= date && w.Type != null);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...