У меня есть следующий запрос linq.
var entities = await _context.Events
.Include(x => x.Category)
.Include(x => x.Owner)
.Where(x =>
x.OwnerId == request.OwnerId && (
x.DateType == 1 && x.EndDateTimeUtc >= DateTime.UtcNow ||
x.DateType == 2 && x.Month >= DateTime.UtcNow.Month && x.Year >= DateTime.UtcNow.Year ||
x.Year >= DateTime.UtcNow.Year ||
x.DateType == 3 && x.Quarter >= quarter && x.Year >= DateTime.UtcNow.Year ||
x.Year >= DateTime.UtcNow.Year
))
.ToListAsync(cancellationToken);
Я бы хотел, чтобы выражение в предложении .Where было функцией / переменной, которую я могу настроить где-нибудь еще и просто передать ее в where статьи. У меня есть несколько запросов, для которых требуются эти очень специфические c условия, поэтому я хотел бы создать его в одном месте и передавать вместо того, чтобы копировать и вставлять.
Функция, которую мне нужно создать, должна принимать 2 параметра (один для request.OwnerId и один для Quarter), остальные генерируются из полей date / db
ПРИМЕЧАНИЕ: часть запроса основана на поле Speci c, несколько других условий применяются, только если DateType является спецификацией c число (1-3)