我将尝试筛选SQL表中所有具有特定日期的行。如果列不可为空,它能够正常工作,但是如果可以为空,则失败。
以下是针对不可为空的datetime字段的处理方法:
显然,这种方法不能用于可空的日期时间字段。在互联网上搜索后,我发现有许多“解决方案”看起来像以下内容:
很遗憾,这对我也不起作用。如果考虑以下错误信息,就可以理解为什么:
'System.Nullable'未包含“Day”的定义,并且没有接受类型为“System.Nullable”的第一个参数的扩展方法'Day'(您是否缺少using指令或程序集引用?)
我想避免在.NET中获取所有SQL行,然后进行筛选,因为我只对非常少量的行感兴趣。有没有其他我目前没有看到的方法?
以下是针对不可为空的datetime字段的处理方法:
ent.MyTable.Where(e => e.MyDate.Day == 12);
显然,这种方法不能用于可空的日期时间字段。在互联网上搜索后,我发现有许多“解决方案”看起来像以下内容:
ent.MyTable.Where(e => e.MyDate != null && e.MyDate.Day == 12);
很遗憾,这对我也不起作用。如果考虑以下错误信息,就可以理解为什么:
'System.Nullable'未包含“Day”的定义,并且没有接受类型为“System.Nullable”的第一个参数的扩展方法'Day'(您是否缺少using指令或程序集引用?)
我想避免在.NET中获取所有SQL行,然后进行筛选,因为我只对非常少量的行感兴趣。有没有其他我目前没有看到的方法?
MyDate
定义为可空的DateTime
类型?如果是,那么你的第二行代码不应该编译通过。如果不是,那么你的模型与数据库不匹配。 - Zein Makki