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
Post a Comment