2010-08-06 3 views
0

Dans la base de données Northwind .Je utilise ordre et ORDERDETAILS table.I veulent créer un fichier xml, où pour spectacle sur l'étiquette d'objet sur XML et OrderDetails montrent sur sous item .Suppose orderid = 1 montrer sur le tag de l'article puis orderdetais Informations sur le tableau OrderID = 1 Afficher dans le sous-rayon.Comment créer des sous article sur Xml Linq

XElement xml = new XElement("MyMenu", 
         from c in db.Orders 
         //where (c.ParentID == 0) 
         orderby c.OrderID 
         select new XElement("Item", 
           c.OrderID == null ? null : new XAttribute("OrderID", c.OrderID), 
           c.ShipName == null ? null : new XAttribute("ShipName", c.ShipName), 
            c.OrderDate == null ? null : new XAttribute("OrderDate", c.OrderDate) 


           ) 
        ); 

      xml.Save(@"C:\contacts.xml"); 

Que dois-je ajouter sur mon dessus syntax.Show me syntax.Thanks dans le travail advance.I sur la syntaxe C# .Above montrent la sortie ci-dessous:

<?xml version="1.0" encoding="utf-8"?> 
<MyMenu> 
    <Item OrderID="10248" ShipName="Vins et alcools Chevalier" OrderDate="1996-07-04T00:00:00" /> 
    <Item OrderID="10249" ShipName="Toms Spezialitäten" OrderDate="1996-07-05T00:00:00" /> 
    <Item OrderID="10250" ShipName="Hanari Carnes" OrderDate="1996-07-08T00:00:00" /> 
</MyMenu> 

Je veux beugler sur mettre

<MyMenu> 
     <Item OrderID="10248" ShipName="Vins et alcools Chevalier" OrderDate="1996-07-04T00:00:00" > 
     <SubItem> 
     .......... 
     ..........Contain detailTable Information for OrderID="10248" 
     ........... 
    </SubItem> 
</Item>  
    </MyMenu> 

Ma syntaxe ci-dessous ne parviennent pas à créer au-dessus de la sortie:

XElement xml = new XElement("MyMenu", 
         //from c in db.Orders 
         from c in db.Orders 
         join od in db.Order_Details on c.OrderID equals od.OrderID 
         //where (c.ParentID == 0) 
         orderby c.OrderID 
         select new XElement("Item", 
           c.OrderID == null ? null : new XAttribute("OrderID", c.OrderID), 
           c.ShipName == null ? null : new XAttribute("ShipName", c.ShipName), 
            c.OrderDate == null ? null : new XAttribute("OrderDate", c.OrderDate), 
          new XElement("SubItem", 
           od.OrderID == null ? null : new XAttribute("OrderID", od.OrderID), 
           od.ProductID == null ? null : new XAttribute("ProductID", od.ProductID), 
           od.Quantity == null ? null : new XAttribute("Quantity", od.Quantity) 
           ) 


           ) 
        ); 

Au-dessus de la syntaxe de créer une sortie ci-dessous:

<?xml version="1.0" encoding="utf-8"?> 
<MyMenu> 
    <Item OrderID="10250" ShipName="Hanari Carnes" OrderDate="1996-07-08T00:00:00"> 
    <SubItem OrderID="10250" ProductID="41" Quantity="10" /> 
    </Item> 
    <Item OrderID="10250" ShipName="Hanari Carnes" OrderDate="1996-07-08T00:00:00"> 
    <SubItem OrderID="10250" ProductID="51" Quantity="35" /> 
    </Item> 
    <Item OrderID="10250" ShipName="Hanari Carnes" OrderDate="1996-07-08T00:00:00"> 
    <SubItem OrderID="10250" ProductID="65" Quantity="15" /> 
    </Item> 
</MyMenu> 

Comment mettre OrderID = "10250" tous les sous-élément sous une étiquette d'objet?

Répondre

0
XElement xml = new XElement("MyMenu", 
    //from c in db.Orders 
    from c in db.Orders 
    orderby c.OrderID 
    select new XElement("Item", 
     c.OrderID == null ? null : new XAttribute("OrderID", c.OrderID), 
     c.ShipName == null ? null : new XAttribute("ShipName", c.ShipName), 
     c.OrderDate == null ? null : new XAttribute("OrderDate", c.OrderDate), 
     from od in db.Order_Details 
     where od.OrderID == c.OrderID 
     select new XElement("SubItem", 
      od.OrderID == null ? null : new XAttribute("OrderID", od.OrderID), 
      od.ProductID == null ? null : new XAttribute("ProductID", od.ProductID), 
      od.Quantity == null ? null : new XAttribute("Quantity", od.Quantity) 
     ) 
    )); 
Questions connexes