在我的 Sql 資料庫中,我有表Orders并Details遵循此模型,其中Details.order的外鍵是Orders.id:
public class Order {
public int id { get; set;}
}
public class Detail {
public int id { get; set;}
public int order { get; set; }
public int quantity { get; set; }
}
我能夠形成一個連接查詢以在平面串列中回傳訂單詳細資訊,例如:
from order in db.Orders
join detail in db.Details on order.id equals detail.order
select new { order = order.id, detail = detail }
結果是平坦的,如果有 10 個Details專案,結果將有 10 行。
如何構造 Linq 查詢以回傳與類相似的結果OrderDetail?
public class OrderDetail {
public int orderId { get; set;}
public List<Detail> details { get; set;}
}
其中Detailsan 的所有專案Orders都在一個串列中作為OrderDetail物件的屬性。
uj5u.com熱心網友回復:
您應該使用OrderDetails模型來選擇記錄,而不是創建匿名物件。
您可以考慮以下示例:
var result = db.Orders
.Select(i => new OrderDetails {
orderId = i.id,
details = i.details.ToList() // this will be the ICollection of Details table
}).ToList();
uj5u.com熱心網友回復:
你應該在這里加入群組。您可以在此處嘗試以下代碼:
from order in db.Orders
join detail in db.Details on order.id equals detail.order into OrderDetailsObj
from detail.DefaultIfEmpty()
select new { orderId = order.id,
details = from od in OrderDetailsObj
select od.detail
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/352933.html
標籤:林克
