Tôi đã tự hỏi liệu có ai biết chắc chắn nếu LINQ to SQL có khả năng tạo mã TSQL có chứa hàm ISNULL
không?LINQ to SQL có thể tạo TSQL có chứa hàm ISNULL không?
Tôi biết rằng việc sử dụng các nhà điều hành liên hiệp (??
) trong một truy vấn:
from o in Table
where (o.Field ?? 0) > 0
select o
sẽ gây LINQ to SQL để phát ra các COALESCE
chức năng:
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (COALESCE([t0].[Field],0)) > 0
Và, đó là sử dụng toán tử điều kiện (?:
) trong truy vấn:
from o in Table
where (o.Field == null ? 0 : o.Field) > 0
select o
sẽ cho kết quả trong TSQL chứa một tuyên bố CASE
:
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (
(CASE
WHEN [t0].[Field] IS NULL THEN 0
ELSE [t0].[Amount]
END)) > 0
Nhưng, có thể LINQ to SQL bị cưỡng chế vào tạo mã TSQL chứa ISNULL
như sau?
SELECT [t0].[Field]
FROM [Table] AS [t0]
WHERE (ISNULL([t0].[Field],0)) > 0
Tôi đặt cược câu trả lời là "không, không thể", nhưng tôi muốn thấy điều gì đó có thẩm quyền.
@dbaseman Q bạn liên kết có vẻ không liên quan đến những gì tôi đang yêu cầu. – arcain
Bạn nói đúng, sai lầm của tôi. – McGarnagle