2
我不知道如何将此SQL语句转换为使用OUTER APPLY和TOP的LINQ。有人可以提出一个想法如何处理它。谢谢!如何将此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视图并以这种方式使用它? 可能不完全是你想要的,但它绝对是一种解决方法。 – Rippo 2009-10-26 07:40:16
这看起来有点像过度设计的'join'。也许你可以在T-SQL中将它重写为'join',然后将其转换为LINQ-to-SQL? – bzlm 2009-10-26 08:16:34