У меня есть следующие LINQ к выражению лиц:выражения Linq не поддерживается
var allItemsOver64 =
_inventoryContext.Items.Where(
i => DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65);
Проблема заключается в том, что, когда я использую allItemsOver64 он говорит, что это выражение не поддерживается. У меня такое чувство, что эта ошибка происходит из-за вызова метода CalculateAgeInYears. Почему это происходит и как я могу это исправить?
Спасибо,
Сэчин
Edit:
Даже после того, как изменить код, чтобы использовать IEnumerables я все еще получаю ту же ошибку. Вот мой код:
DateTime now = DateTime.UtcNow;
var allItemsOver64 =
_inventoryContext.Items.Where(
i => DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65).AsEnumerable();
IEnumerable<Item> items65To69 = allItemsOver64.Where(
i =>
DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65 &&
DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) <= 69).AsEnumerable();
Так он работает с '<= 65'? – Sorax
Мне не нужны никакие предметы в возрасте менее 65, чтобы даже не прийти в уравнение. –