theo tất cả các mẫu, chuyển đổi SQL để LINQ cho HAVING khoản như trong ví dụ này:LINQ to SQL GROUP BY HAVING tạo ra chỉ như là subquery
SELECT NAME
FROM TABLES
GROUP BY NAME
HAVING COUNT(*) > 1
là: (vb.net)
from t in tables
group t by t.NAME into g = Group
where g.count > 1
select g
NHƯNG tuyên bố LINQ trên được phiên dịch sang các SQL sau:
SELECT [t1].[NAME] AS [Key]
FROM (
SELECT COUNT(*) AS [value], [t0].[NAME]
FROM [tables] AS [t0]
WHERE [t0].[NAME] <> @p0
GROUP BY [t0].[NAME]
) AS [t1]
WHERE [t1].[value] > @p1
Tôi chưa bao giờ thành công trong việc tạo biểu mẫu HAVING LINQ. Giả sử HAVING và nhóm truy vấn con bằng WHERE tương đương với kết quả, nhưng có sự khác biệt về hiệu suất không? những gì về việc giữ các truy vấn SQL ban đầu của tôi ít nhất là SIMILAR với các truy vấn LINQ tạo ra cơ bản?