我在存储过程中有这个自定义列。如您所见,它的值不可能为空:
cast(case when ( s.userName is not null and s.Username in ( 'super','superadmin') then 1
else 0 end
as bit) as isSuperAdmin
但当我将其映射到实体框架时,它将变成可为空的:
这没关系,但我必须做以下事情,而且很难看:
var isSuperAdmin = (!user.isSuperAdmin.HasValue) ? false: user.isSuperAdmin.Value;
有没有办法强迫它是一个
Boolean
值? 最佳答案
除非包装在ISNULL
这应该管用
ISNULL(CASE WHEN s.Username in ( 'super','superadmin') THEN CAST(1 AS BIT) END,0) as isSuperAdmin
不需要进行
s.userName is not null
检查。如果它与IN
匹配,它将不为空。