Я не знаю, как преобразовать этот оператор SQL в LINQ, который использует OUTER APPLY и TOP. Может кто-нибудь дать представление, как с этим справиться. Благодаря!Как преобразовать эту инструкцию SQL в LINQ?
SELECT Cust.CustomerName, Ord.OnlineOrderTitle, Pro.ProductTitle,
Pic.PictureFilename, PCom.PictureCommentText, Ord.OnlineOrderDateAdded
FROM Customer as Cust
OUTER APPLY
(SELECT * FROM OnlineOrder
WHERE CustomerID = Cust.CustomerID) as Ord
OUTER APPLY
(SELECT * FROM Product
WHERE OnlineOrderID = Ord.OnlineOrderID) as Pro
OUTER APPLY
(SELECT TOP 1 * FROM Accessory
WHERE ProductID = Pro.ProductID) as Acc
OUTER APPLY
(SELECT TOP 1 * FROM Picture
WHERE ProductID = Pro.ProductID) as Pic
OUTER APPLY
(SELECT TOP 1 * FROM PictureComment
WHERE PictureID = Pic.PictureID) as PCom
ORDER BY Ord.OnlineOrderDateAdded DESC
Почему бы не сделать это представлением SQL и использовать его таким образом? Maybve не совсем то, что вы хотите, но это определенно одна работа. – Rippo
Это немного похоже на чрезмерное «объединение». Возможно, вы можете переписать его как «join» в T-SQL, а затем преобразовать его в LINQ-to-SQL? – bzlm