【发布时间】:2017-01-26 04:44:31
【问题描述】:
我有以下 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();
【问题讨论】:
-
所以它适用于
<=65? -
我不需要 65 岁以下的任何物品,因此这甚至不属于等式。
标签: c# linq entity-framework-4 linq-to-entities