VB.NET LINQ方法语法不允许来自'布尔的隐式转换?'到布尔'

时间:2016-05-12 12:40:30

标签: vb.net entity-framework linq entity-framework-6

在了解有关Entity Framework和LINQ的更多信息时,我遇到了麻烦。

我正在尝试从数据库中查找与特定日期匹配的值。

我有1.250.000个条目,其中36300个来自特定日期。

到目前为止,我正在使用普通的旧SQL,并希望练习LINQ来重构我的应用程序以使用EF。

你能说出我的错误吗?

第二种方式有效但需要很长时间~15秒

enter image description here

1 个答案:

答案 0 :(得分:3)

尝试:

Where(Function(d) d.ExportedDate.HasValue AndAlso d.ExportedDate.Value = exportDate) 

通过这种方式,您只能选择可空列ExportedDate不为空的行以及等于给定日期的行。 ExportedDate.Value返回Date而不是d.ExportedDate Date?。如果您将Date?Date进行比较,结果会得到Boolean?(而不是Boolean),因为Nothing表示未定义。

这与C#有一个有趣的区别,相关:Why is there a difference in checking null against a value in VB.NET and C#?

要修复下一个错误:添加ToList以创建列表。