Sql server 选项strict on不允许在';布尔?';在SQL语句中使用布尔值
我正在开发一个MVC4(VB)应用程序 我试图计算满足特定条件的记录数: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 我不能把它
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))