Mi chiedevo se qualcuno sa in modo definitivo se LINQ to SQL ha la capacità di generare codice TSQL che contiene la funzione ISNULL
?LINQ to SQL può generare TSQL contenente la funzione ISNULL?
Sono consapevole del fatto che utilizzando l'operatore coalesce (??
) in una query:
from o in Table
where (o.Field ?? 0) > 0
select o
causerà LINQ to SQL per emettere la funzione COALESCE
:
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (COALESCE([t0].[Field],0)) > 0
E, che l'utilizzo del operatore condizionale (?:
) in una query:
from o in Table
where (o.Field == null ? 0 : o.Field) > 0
select o
si tradurrà in TSQL contenente un CASE
dichiarazione:
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (
(CASE
WHEN [t0].[Field] IS NULL THEN 0
ELSE [t0].[Amount]
END)) > 0
Ma, può LINQ to SQL essere costretto a generare il codice TSQL che contiene ISNULL
come la seguente?
Scommetto che la risposta è "no, non può", ma mi piacerebbe vedere qualcosa di autorevole.
@dbaseman La Q che hai collegato sembra estranea a quello che sto chiedendo. – arcain
Hai ragione, mio errore. – McGarnagle