I have the following LINQ query that creates the following outputs:
var query = from s in db.Sku
join sc in db.SkuCombo on s.Sku equals sc.Sku
join s2 in db.Sku on sc.SkuId equals s2.Sku
where skulist.Contains(s.Sku)
select new
{
Sku = s.Sku,
SkuQty = s.SkuQty,
ComboSku = s2.Sku,
ComboSkuQty = sc.Qty
};
Sku SkuQty ComboSku ComboSkuQty
===============================================
ABC-123 1 CCC-111 2
ABC-123 1 DDD-222 3
ABC-123 1 EEE-333 1
ABC-123 1 FFF-444 4
XYZ-789 3 JJJ-777 5
XYZ-789 3 KKK-888 1
I would like the output to be mapped to C# class OrderItem, but I'm not sure how to go about this. I'm pretty sure that I need a group by on the Sku?
public class OrderItem
{
public string Sku { get; set; }
public int SkuQty { get; set; }
public List<ComboItem> ComboItems { get; set; }
}
public class ComboItem
{
public string ComboSku { get; set; }
public int ComboSkuQty { get; set; }
}
select new OrderItem?OrderItemclass at the end of the question.