1
我有我試圖轉換爲LINQ到實體,但正確的解決方案是目前影射我下面的SQL語句:需要幫助通過將SQL語句組,總結成LINQ到實體
select op.orders_products_id,
op.products_id,
op.products_model,
op.products_name,
op.products_price,
sum(op.products_quantity) as quantity,
sum(op.count_quantity) as count_quantity
from orders_products op
where orders_id = 574214
group by op.products_id
order by op.products_model, op.orders_products_id
在這個特定的SQL語句中,orders_products_id是表的主鍵,因此當我們按products_id值進行分組時,它將摺疊表中相同product_id的所有重複行,並且數量列結果將爲總數數量爲所有列。給定訂單聲明,op.orders_products_id應該最終成爲每個在同一個表中具有多個條目的特定產品的第一行ID。
要選擇使用LINQ到實體的線沒有做的分組,我會用下面的代碼:
using (var uow = new StoreEntities()) {
var query = from op in uow.OrderProducts
where op.OrderID == 574214
orderby op.Model, op.OrderProductID
select new {
ID = op.OrderProductID,
ProductID = op.ProductID,
Model = op.Model,
Name = op.Name,
SalePrice = op.SalePrice,
Qty = op.Qty,
CountedQty = op.CountedQty,
};
var list = query.ToList();
}
但我完全此刻失去了,我怎麼會去這樣做分組到獲得與我原來的SQL相同的結果?當我將LINQ分組到實體中時,分組的結果是一個帶有密鑰的新序列和該密鑰項目的詳細信息。我該如何將這種情況弄平,以便我可以將結果類似於我編寫原始SQL查詢的結果?