【发布时间】:2017-10-23 17:03:19
【问题描述】:
我正在尝试这样做,但它不起作用,它返回空结果:
if (inputDate != null)
{
dataContext.myTable
.Where(r => r.myDate.HasValue &&
r.myDate.Value.Day == inputDate.Value.Day)
}
我想比较两个可以为空的DateTime 值,我只想从属于某个Date 的数据库中检索DateTime 值。为了简化这个问题,我首先尝试只比较它们的Day 值。
请不要标记为重复,我正在使用 EF5,所以我没有DbFunctions.TruncateTime() 功能。
【问题讨论】:
-
你可以使用
r.myDate.Date == inputValue.Date。使用Day意味着无论月份如何,您都会得到匹配。 -
不工作它会给出一个例外:LINQ to Entities 不支持指定的成员“日期”。事实上 EntityFramework 并没有重新考虑如何将这段代码翻译成 sql
-
尝试删除
r.myDate.HasValue,然后使用r.myDate.Date == inputValue.Date -
@S.Petrosov 仅当 myDate 列是
DATE列时才有效。如果是DATETIME,则不会。 -
我试图删除 HasValue 但仍然无法正常工作。对于 .Date,它给出了一个异常LINQ to Entities 中不支持指定的成员“日期”。。而对于 .Day 它给出了空的结果
标签: c# entity-framework entity-framework-5