C# Linq to xml. Items nested in parent object -


i'm having problem linq query , serializing xml , hoping can see i'm going wrong. linq still bit alien me, grateful.

here's linq query

var orders = (from o in db.orders               o.id == id               select new order               {                   orderid = o.order_reference,                   deliveryaddress = new deliveryaddress()                   {                       addressline1 = o.customer.address.address_1                   },                   orderitem = (from oi in db.order_items                                oi.order_id == o.id                                select new orderitem()                                {                                    item = oi.item                                }).tolist()               }               ).tolist(); 

and here's xml output

<order>     <orderid>w0003579579</orderid>     <deliveryaddress>         <addressline1>address</addressline1>     </deliveryaddress>     <orderitem>         <orderitem>             <item>t-shirt</item>         </orderitem>         <orderitem>             <item>jumper</item>         </orderitem>     </orderitem> </order> 

the problem is, want orderitem not child of orderitem so

<order>     <orderid>w0003579579</orderid>     <deliveryaddress>         <addressline1>address line 1</addressline1>     </deliveryaddress>     <orderitem>         <item>t-shirt</item>     </orderitem>     <orderitem>         <item>jumper</item>     </orderitem> </order> 

this model

public class order {     public string orderid { get; set; }     public deliveryaddress deliveryaddress { get; set; }     public list<orderitem> orderitem { get; set; } }  public class deliveryaddress {     public string addressline1 { get; set; } }  public class orderitem {      public string item { get; set; } } 

and xml serializer

    private xdocument serialize<t>(t source)     {         xdocument target = new xdocument();         xmlserializer s = new xmlserializer(typeof(t));         system.xml.xmlwriter writer = target.createwriter();         s.serialize(writer, source);         writer.close();         return target;     } 

try annotating class this:

public class order {     public string orderid { get; set; }     public deliveryaddress deliveryaddress { get; set; }      [xmlelement("orderitem")]     public list<orderitem> orderline { get; set; } } 

Comments