LINQ to SQL が関数を含む TSQL コードを生成する機能を持っているかどうかを誰かが明確に知っているかどうか疑問に思っていましたISNULL
か?
??
クエリで合体演算子 ( ) を使用していることは承知しています。
from o in Table
where (o.Field ?? 0) > 0
select o
LINQ to SQL が次のCOALESCE
関数を発行します。
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (COALESCE([t0].[Field],0)) > 0
?:
また、クエリで条件演算子 ( ) を使用すると、次のようになります。
from o in Table
where (o.Field == null ? 0 : o.Field) > 0
select o
CASE
ステートメントを含む TSQL になります。
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (
(CASE
WHEN [t0].[Field] IS NULL THEN 0
ELSE [t0].[Amount]
END)) > 0
しかし、LINQ to SQL は、次のような内容を含む TSQL コードを強制的に生成できISNULL
ますか?
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (ISNULL([t0].[Field],0)) > 0
答えは「いいえ、できません」だと思いますが、権威のあるものを見たいと思っています。