2010-02-16 59 views

回答

0

你的問題似乎有點不清楚。但是,我假設您的訂單表有一個「距離」列。您想要選擇具有最高距離值的訂單的所有產品。

var products = from p in db.Products 
       select new 
       { 
        ProductID = p.ProductID, 
        ProductName = p.ProductName, 
        HighestDistanceOrder = p.Orders.OrderByDescending(o => o.Distance).FirstOrDefault() 
       }; 

如果你想最高距離的值,而不是整個訂單,然後

var products = from p in db.Products 
       select new 
       { 
        ProductID = p.ProductID, 
        ProductName = p.ProductName, 
        HighestDistance = p.Orders.Max(o => o.Distance) 
       }; 

希望有所幫助。

Matrich

+0

難道這個解決方案實際上會導致多個sql quries嗎? – totem

+0

對於第一種情況,即返回距離值最高的訂單,它首先獲取所有產品詳細信息,然後爲每個返回的產品創建一個SELECT TOP(1)查詢。 對於返回最高距離值的情況二,它只創建一個SQL查詢。 – Matrich

+0

有沒有辦法做一個單一的查詢,但仍然得到整行? (最大值爲單個值) – totem

相關問題