我有以下 LINQ to Entities 表达式:
var allItemsOver64 =
_inventoryContext.Items.Where(
i => DateTimeHelper.CalculateAgeInYears(i.PrimaryInsured.DoB, now) >= 65);
问题是当我使用 allItemsOver64 时,它说不支持这个表达式。我感觉这个错误是由于调用了CalculateAgeInYears 方法而发生的。为什么会发生这种情况,我该如何解决?
谢谢,
萨钦
编辑:
即使在更改代码以使用 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();