2017-12-29 37 views
1

このカスタム列はストアドプロシージャ内にあります。あなたが見ることができるように、その値は、これまではnullになる方法はありません。大丈夫です enter image description hereEntity Framework CASE-WHEN列をNULLにできないようにする

を私はする必要があります:私は、Entity Frameworkのにマッピングする際

cast(case when (s.userName is not null and s.Username in ('super','superadmin') then 1 
    else 0 end 
    as bit) as isSuperAdmin 

をしかし、それはNULL可能に変身します次の操作を行い、そして、それは醜いです:

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チェックの必要はありませんが動作するはずがない限り

答えて

2

SQL Serverはnullとして最も計算された式の値を扱います。 INと一致する場合、NULLになりません。

関連する問題