Хитрость здесь в том, что она не может перевести все ваши фантазии оооооооооооооооооооооооооооооо «на старый»Хитрость заключается в том, чтобы перевернуть его с ног на голову:
var before = DateTime.Now.AddDays(-90);
var persons = context.Persons.Where(x => x.CreateDT > before);
ОБЪЯСНЕНИЕ
Помните, что все в бите WHERE вашего оператора LINQ должно быть переведено из C # в SQL EF.Он очень, очень способен из коробки и обрабатывает большинство основных задач, но он не знает, как понимать самые элементарные вызовы методов, такие как DateTime.Subtract ().Таким образом, идея здесь состоит в том, чтобы позволить ему делать то, что он делает лучше всего, предварительно вычисляя значение и затем передавая его на уровень данных.
Первая строка вычитает 90 дней из текущего времени, добавляя отрицательные 90 дней.Вторая строка передает его на сервер базы данных.
Вторая строка должна переводиться в SQL, ГДЕ CreateDT> @ BEFORETHIS