Использование DateTime.Substract в LINQ выбивает ошибку

По задумке из БД должны приходить сотрудники у которых разница между текущей датой и датой старта больше 180 дней. Вот вроде и лямбду написал, но при выполнении выбивает ошибку:

The LINQ expression 'DbSet .Where(e => !(e.IsDeleted) && e.WorkEndDate == null && DateTime.UtcNow.Subtract(e.WorkStartDate).Days > 180)' could not be translated.

Сам код:

var targetEmployees = await _dbContext.Employees
                    .Where(emp => !emp.IsDeleted && emp.WorkEndDate == null && (DateTime.UtcNow.Subtract(emp.WorkStartDate).Days > 180))

Ответы (3 шт):

Автор решения: Alexandr Kruzer
Решил следующим образом:
var targetEmployees = await _dbContext.Employees
                    .Where(emp => !emp.IsDeleted && emp.WorkEndDate == null)
    .AsAnumerable()   //создаём локалькую коллекцию, чтобы не нужно было транслировать условие в SQL
    .Where(DateTime.UtcNow.Subtract(emp.WorkStartDate).Days > 180));
→ Ссылка
Автор решения: Alexander Petrov

Нужно ввести дополнительную переменную с посчитанным значением и использовать её в запросе.

var dt = DateTime.UtcNow.AddDays(-180);

var targetEmployees = await _dbContext.Employees
    .Where(emp => !emp.IsDeleted && emp.WorkEndDate == null && dt > emp.WorkStartDate)

Есть специальные классы с набором функций, которые можно использовать в запросах. DbFunctions в EF Core. SqlFunctions в EF 6.

→ Ссылка
Автор решения: Alexandr Kruzer

Всем спасибо, получилось сделать элегантное решение:

var targetEmployees = _dbContext.Employees
                .Where(emp => !emp.IsDeleted && emp.WorkEndDate == null && (EF.Functions.DateDiffDay(DateTime.UtcNow, emp.WorkStartDate) > 180))
→ Ссылка