【发布时间】:2020-03-31 18:59:11
【问题描述】:
我正在尝试在 EF 上下文中针对 DbSet 执行 LINQ 查询。 DbSet类中的LastDAyToEnterData类有3个short类型的get/set属性,映射到一个SQL Server表,有3个smallint类型的列,分别代表年、月、日。当我在.Where() 中使用表达式时,我得到了这个错误。我应该使用什么表达式来比较两个日期?谢谢。
无法翻译 LINQ 表达式。以可翻译的形式重写查询,或通过插入对 AsEnumerable()、AsAsyncEnumerable()、ToList() 或 ToListAsync() 的调用显式切换到客户端评估。请参阅https://go.microsoft.com/fwlink/?linkid=2101038 了解更多信息。
DbSet<LastDayToEnterData>
.Where(l => new DateTime(
(int)l.YearID,
(int)l.MonthID,
(int)l.StopEnteringDataAfter
) > new DateTime(
DateTime.Today.Year - 1,
10,
1
))
【问题讨论】:
-
由于时间限制,我放弃了将yearid、monthid和stopEnteringDateAfter转换为真实DateTime的方法。我会尝试其他时间。非常感谢。
标签: c# linq asp.net-core