>>> public static void GetTransactions() >>> { >>> using (var context = new PICSEntities(Config.model.SqlServer)) >>> { >>> var q = from p in context.Parcels >>> join pt in context.ParcelInventoryTypes on p.ParcelInventoryTypes_Id equals pt.ParcelInventoryTypes_Id >>> join t in context.TransactionDetails on p.Parcels_Id equals t.Parcels_Id >>> join h in context.TransactionHeaders on t.TransactionHeaders_Id equals h.TransactionHeaders_Id >>> join g in context.GoodsTypes on p.GoodsTypes_Id equals g.GoodsTypes_Id >>> join tt in context.TransactionTypes on h.TransactionTypes_Id equals tt.TransactionTypes_Id >>> select new >>> { >>> Parcels_Id = p.Parcels_Id, >>> Goods = g.Description, >>> Inventory = pt.Description, >>> RSReference = p.RSReference, >>> Transaction_Nr = h.TransactionHeaders_Id, >>> Transaction_Type = tt.TransactionTypes_Id, >>> Date = h.TransactionDate, >>> Weight = t.Weight, >>> Amount = t.Amount >>> }; >>> // Json.serialize(q, @"c:\docs\q.json"); >>> Monitor.Console($"Extracted {q.Count()} records."); >>> using (var fs = new System.IO.FileStream(@"c:\docs\q.xml", System.IO.FileMode.Create)) >>> { >>> System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(q.GetType()); >>> x.Serialize(fs, q); >>> } >>> } >>> } >>>>>>This breaks here :
>>> System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(q.GetType()); >>>>>>Cannot serialize anonymous types.
public class Thing >> { >> public int Parcels_Id { get; set; } >> public string Goods { get; set; } >> // etc >> }then:
select new Thing{Parcels_Id = Parcels_Id.......} >>//and: >> using (var fs = new System.IO.FileStream(@"c:\docs\q.xml", System.IO.FileMode.Create)) >> { >> System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(typeof(Thing[]),new XmlRootAttribute("MyThings")); >> x.Serialize(fs, q.ToArray()); >> }