private void ReadNewReduxDataStream(object sender, RoutedEventArgs e) { Services services = new Services(); redux_items item = null; var context = new ReduxEntities(); int count = 0; XmlReader reader = XmlReader.Create(@"D:\Docs\prog.txt"); while (reader.Read()) { if (reader.IsStartElement() && reader.Name == "row") { if (item != null) { if (context.redux_items.Any(i => i.disk_reference == item.disk_reference) == false) { //context.redux_items.AddObject(item); //count++; //if (count > 100) //{ // context.SaveChanges(); // context = new ReduxEntities(); // count = 0; //} } } item = new redux_items(); } /* * channel_id * disk_reference * title * description * duration * start * pcrid * scrid * end */ CultureInfo provider = CultureInfo.InvariantCulture; if (reader.IsStartElement() && reader.Name == "field") { var fieldname = reader.GetAttribute("name"); switch (fieldname) { case "channel_id": Service service = services.GetServiceByReduxId(reader.ReadElementContentAsString()); item.service_id = service.Id; break; case "disk_reference": item.disk_reference = reader.ReadElementContentAsString(); break; case "title": item.programme_name = reader.ReadElementContentAsString(); break; case "description": item.short_description = reader.ReadElementContentAsString(); break; case "duration": item.duration = reader.ReadElementContentAsInt(); break; case "start": string dt = reader.ReadElementContentAsString(); item.aired = DateTime.Parse(dt, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); break; case "pcrid": item.programme_crid = reader.ReadElementContentAsString(); break; case "scrid": item.series_crid = reader.ReadElementContentAsString(); break; case "end": break; default: break; } } } if (item != null) { //context.redux_items.AddObject(item); //context.SaveChanges(); } }