Sql server 选项strict on不允许在';布尔?';在SQL语句中使用布尔值

Sql server 选项strict on不允许在';布尔?';在SQL语句中使用布尔值,sql-server,vb.net,linq,asp.net-mvc-4,Sql Server,Vb.net,Linq,Asp.net Mvc 4,我正在开发一个MVC4(VB)应用程序 我试图计算满足特定条件的记录数: Dim bridgeSelectedCount As Integer = db.IdeaGenerationDatas.Where(Function(s) s.PdId = ProjDivId And s.Selected = True).Count() 使用“option strict on”设置时,编译器会抱怨这部分代码: s.PdId = ProjDivId And s.Selected = True 我不能把它

我正在开发一个MVC4(VB)应用程序

我试图计算满足特定条件的记录数:

Dim bridgeSelectedCount As Integer = db.IdeaGenerationDatas.Where(Function(s) s.PdId = ProjDivId And s.Selected = True).Count()
使用“option strict on”设置时,编译器会抱怨这部分代码:

s.PdId = ProjDivId And s.Selected = True
我不能把它放在一边

convert.toboolean
因为SQL计算在运行时阻塞了它

可以计算为NULL,因此我怀疑这就是错误标注。我怎样才能避开这件事?(无需更改DB表中的列定义,即)


谢谢

如果它与
nullable
类型相关,这可能会有所帮助

Function(s) ((s.PdId.HasValue AndAlso s.PdId.value = ProjDivId) And 
(s.selected.HasValue AndAlso s.selected.value = True))

我将有问题的DB字段设置为非空。

您是否尝试过删除=True?ProjDivId和
s中的一个或两个。所选的
似乎属于
可空(布尔型)
(也称为
布尔型?
)。是这样吗?是的。s、 所选的是一个可为NULL类型的位字段。删除“=True”没有帮助。只需将相关字段设置为非NULL就更容易了。添加“.HasValue”没有帮助。编译器错误为:“Option Strict On不允许从“Boolean?”隐式转换为“Boolean”
Function(s) ((s.PdId.HasValue AndAlso s.PdId.value = ProjDivId) And 
(s.selected.HasValue AndAlso s.selected.value = True))