2015-02-23 3 views
0

Что я пытаюсь сделать, это я дажи объекта заказа, который содержитГруппировки объектов в пределах вложенного списка LINQ

sales order header 
and list of order lines 

в пределах строк заказа я имею фактическую линию заказа, информация о продукте объект и биржевой информация объекта :

public class SalesOrder 
{ 
    public Header SalesHeader { get; set; } 
    public List<OrderLineProductInfo> OrderLines { get; set; } 
} 

public class OrderLineProductInfo 
{ 
    public Line salesOrderLine { get; set; } 
    public Info ProductInfo { get; set; } 
    public Stock ProductStock { get; set; } 
} 

таким образом я могу получить список объектов SalesOrder так индекса заказа пример продажи 0

имеет 2 выстилает ProductStockObject в один из этих линий имеет приоритетную Supp лжец из аЬса и другой линии имеет привилегированный поставщик 123

я хочу быть в состоянии группы по предпочитаемому поставщику имуществу

var separatePreferredSuppliers = 
    (from b in x.OrderLines 
       .GroupBy(g => g.ProductStock.PreferredSupplier) 
        select ... 
    ).ToList(); 

не совсем уверены, что будет дальше, что должно быть выбрано? новый список SalesOrder?

Я хочу, чтобы его так, что он дает два экземпляра заказа клиента, но разделить на 2 один для каждого привилегированного поставщика

+0

Этот вопрос выглядит так, как вы, смотрите здесь: http://stackoverflow.com/questions/7325278/group-by-in-linq?rq=1 – w69rdy

ответ

0

Я думаю, что я получаю то, что вы имеете в виду

from line in x.OrderLines 
group line by line.ProductStock.PreferredSupplier into grouped 
select new SalesOrder 
{ 
    OrderLines = grouped.ToList() 
} 

, хотя я не уверен, как заполнить ваш SalesHeader

0

легко, когда вы знаете, что функция Ruturns GroupBy - вы хотите ключ и список:

.Select((g) => new { supplier = g.Key, prodlist = g.ToList()} 
Смежные вопросы