Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq2XML помогите с множественной группировкой / 6 сообщений из 6, страница 1 из 1
27.10.2010, 11:37
    #36922259
Andreas_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2XML помогите с множественной группировкой
Есть файл XML
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<Sales>
  <Sale>
    <EmployeeID>279</EmployeeID>
    <OrderID>12345</OrderID>
    <ProductID>776</ProductID>
   <Sale>
  <Sale>
    <EmployeeID>279</EmployeeID>
    <OrderID>1277</OrderID>
    <ProductID>776</ProductID>
   <Sale>
  <Sale>
    <EmployeeID>279</EmployeeID>
    <OrderID>1277</OrderID>
    <ProductID>778</ProductID>
   <Sale>
  <Sales>
Нужно в итоге получить примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<Sales>
  <Sale>
    <EmployeeID>279</EmployeeID>
               <OrderID>12345</OrderID>
                       <ProductID>776</ProductID>
               <OrderID>1277</OrderID>
                           <ProductID>776</ProductID>
                           <ProductID>778</ProductID>
   <Sale>
  <Sales>
    
то есть сначала сгрупировать по <EmployeeID> потом по <OrderID> и по <ProductID>
как делать одну группировку знаю,делаю так
Код: plaintext
1.
2.
3.
4.
  var Employees = from Sale in inputXML.Root.Elements("Sale")
                            group Sale by new { EmpId = Sale.Element("EmployeeID").Value } into g
                            orderby g.Key.EmpId
                            select new XElement("EmployeeID", new XAttribute("ID", g.Key.EmpId));
а как внутрь созданых групп ещё вставить группу?
...
Рейтинг: 0 / 0
27.10.2010, 12:08
    #36922346
Andreas_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2XML помогите с множественной группировкой
Разобрался,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   var Employees = from EmployeeSalesDetail in inputXML.Root.Elements("EmployeeSalesDetail")
                            group EmployeeSalesDetail by new { EmpId = EmployeeSalesDetail.Element("EmployeeID").Value, NatIDNum = EmployeeSalesDetail.Element("NationalIDNumber").Value } into g
                            orderby g.Key.EmpId
                            select new XElement("Employee", new XAttribute("ID", g.Key.EmpId), new XAttribute("NatIDNum", g.Key.NatIDNum),
                                 from order in g
                                 group order by new { GrpId = order.Element("OrderDate").Value } into g2
                                 select new XElement("Order",new XAttribute("ID",g2.Key.GrpId))
            );
...
Рейтинг: 0 / 0
27.10.2010, 14:10
    #36922763
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2XML помогите с множественной группировкой
Шило на мыло.
Я бы перешёл к атрибутам и дочерним узлам.
...
Рейтинг: 0 / 0
27.10.2010, 17:21
    #36923613
Andreas_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2XML помогите с множественной группировкой
buredШило на мыло.
Я бы перешёл к атрибутам и дочерним узлам.

В смысле,могли бы поподробнее?
...
Рейтинг: 0 / 0
27.10.2010, 17:34
    #36923680
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2XML помогите с множественной группировкой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Sales>
<Sale>
<Employee ID="279">
<Order ID="12345">
<Product ID="776"/>
</Order>
<Order ID="1277">
<Product ID="776"/>
<Product ID="778"/>
</Order>                           
</Employee>
<Sale>
<Sales>


с дочерними узлами более понятный xml. Самим же легче парсить будет потом.
...
Рейтинг: 0 / 0
27.10.2010, 17:42
    #36923720
Andreas_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Linq2XML помогите с множественной группировкой
bured
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Sales>
<Sale>
<Employee ID="279">
<Order ID="12345">
<Product ID="776"/>
</Order>
<Order ID="1277">
<Product ID="776"/>
<Product ID="778"/>
</Order>                           
</Employee>
<Sale>
<Sales>


с дочерними узлами более понятный xml. Самим же легче парсить будет потом.
ну у меня именно так и есть сейчас ,я привёл просто часть кода
но мне нужно сейчас как то усовершенствовать сам алгоритм,например можно ли внутрь
Код: plaintext
group EmployeeSalesDetail by new {  }
как то передавать динамически созданый набор
Тоесть сделать более универсально..Есть какие нибудь мысли?
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Linq2XML помогите с множественной группировкой / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]