tôi đã làm các truy vấn sau đây:Tại sao linq sau để truy vấn sql tạo truy vấn phụ?
var list = from book in books
where book.price > 50
select book;
list = list.Take(50);
Tôi mong chờ ở trên để tạo ra một cái gì đó như:
SELECT top 50 id, title, price, author
FROM Books
WHERE price > 50
nhưng nó tạo ra:
SELECT
[Limit1].[C1] as [C1]
[Limit1].[id] as [Id],
[Limit1].[title] as [title],
[Limit1].[price] as [price],
[Limit1].[author]
FROM (SELECT TOP (50)
[Extent1].[id] as as [Id],
[Extent1].[title] as [title],
[Extent1].[price] as [price],
[Extent1].[author] as [author]
FROM Books as [Extent1]
WHERE [Extent1].[price] > 50
) AS [Limit1]
Tại sao các truy vấn LINQ trên tạo một truy vấn phụ và C1 đến từ đâu?
Có lỗi nào liên quan không? –
Không, tôi chỉ chạy nó nhìn vào sql trong hồ sơ và đã được tò mò tại sao nó tạo ra một truy vấn phụ. – Xaisoft
tại sao nó tạo Limit1 và Extent1, thường LINQ sử dụng t0/t1, vv –