public static void TransferXMLToSQLServer(ComputersFactoryContext context, XmlNode rootNode) { foreach (XmlNode node in rootNode.ChildNodes) { context.Manufacturers.Add(new Manufacturer() { Name = node["name"].InnerText }); } context.SaveChanges(); }
public static void TransferItems(Dictionary <string, List <string> > data, Type dataType) { using (var factoryContext = new ComputersFactoryContext()) { var itemSet = factoryContext.Set(dataType); int count = data[data.Keys.FirstOrDefault()].Count; for (int i = 0; i < count; i++) { var item = Activator.CreateInstance(dataType); foreach (var key in data.Keys) { var itemProperty = item.GetType().GetProperty(key); Type propertyType = itemProperty.PropertyType; var value = Convert.ChangeType(data[key][i], propertyType); itemProperty.SetValue(item, value); } itemSet.Add(item); } factoryContext.SaveChanges(); } }
public async Task TransferToMSSQL() { var factoryContext = new ComputersFactoryContext(); var manufacturers = (await this.GetData <Manufacturer>("Manufacturers")).ToList(); var processors = (await this.GetData <Processor>("Processors")).ToList(); var memorycards = (await this.GetData <Memorycard>("Memorycards")).ToList(); var videocards = (await this.GetData <Videocard>("Videocards")).ToList(); var computerTypes = (await this.GetData <ComputerType>("ComputerTypes")).ToList(); var computers = (await this.GetData <Computer>("Computers")).ToList(); try { using (factoryContext) { foreach (var manufacturer in manufacturers) { factoryContext.Manufacturers.Add(manufacturer); } foreach (var processor in processors) { factoryContext.Processors.Add(processor); } foreach (var memorycard in memorycards) { factoryContext.Memorycards.Add(memorycard); } foreach (var videocard in videocards) { factoryContext.Videocards.Add(videocard); } foreach (var type in computerTypes) { factoryContext.ComputerTypes.Add(type); } factoryContext.SaveChanges(); foreach (var computer in computers) { factoryContext.Computers.Add(computer); } factoryContext.SaveChanges(); } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } }