我有以下SQL語句:你如何加入Linq的JOIN/GROUP/Max/Min?
select
p.productId,
p.minAge,
p.maxAge,
min(pcb.lowerbound) MinValue,
max(pcb.upperBound) MaxValue,
p.name ProductName
from gliweb..product p
inner join gliweb..ProductClassBand pcb on pcb.productId = p.productId
where p.IncludeInQuote = 1
and @currentAge between p.minAge and p.maxAge
group by p.productId, p.minAge, p.maxAge, p.name
order by p.name
正如你可以看到,這是一個簡單的語句組,然後一個MIN/MAX。我試圖將這個查詢轉換成C#LINQ,我很難。
到目前爲止,我有以下幾點:
var productListDatabase = from products in DataContext.Products
join band in DataContext.ProductClassBands on products.productId equals band.productId
where products.minAge <= currentAge &&
products.maxAge >= currentAge &&
products.IncludeInQuote == true
orderby products.name
group products by new{
products.productId,
products.minAge ,
products.maxAge,
products.name
} into g
select new
{
g.Key.maxAge,
g.Key.minAge,
g.Key.productId,
g.Key.name
//,minFace = (from t2 in band select t2.
};
它確實是我需要的,除了最小/最大臉上列的一切。我不確定如何做到這一點,因爲我是join
ing一個表,但需要從另一個表中彙總數據。
任何人都可以幫我完成這個查詢作爲Linq聲明嗎?
[如何執行分組聯接(https://msdn.microsoft.com/en-us/library/bb397905.aspx) –