/// <summary> /// 表,表头信息赋值 /// </summary> public void MrInitializeComponent(string dbname) { mrAllcolumnL.Clear(); mrTableL.Clear(); using (var db = new LROSRDbContext(dbname)) { db.Configuration.AutoDetectChangesEnabled = false; db.Configuration.ValidateOnSaveEnabled = false; var column = from q in db.MrTableAllColumn select q; var table1 = from q in column group q by new { q.fileFormatVersion, q.tabletype, q.mrName } into m select m.Key; var table2 = from q in table1 select new MRTableList { tabletype = q.tabletype, Version = q.fileFormatVersion, tableName = q.mrName }; foreach (MrTableAllColumn item in column) { MrTableAllColumn mrTableAllColumn = SingletonMrData.DeepCopy <MrTableAllColumn>(item); mrAllcolumnL.Add(mrTableAllColumn); } foreach (MRTableList item in table2) { MRTableList mRTableList = SingletonMrData.DeepCopy <MRTableList>(item); mrTableL.Add(item); } } }
/// <summary> /// Mr数据入库 /// </summary> /// <param name="path">压缩文件,文件夹路径</param> /// <returns>入库成功</returns> public bool MrInput(string path, string deName) { int xmlNumber = 0; int dbNUmber = 0; //初始化XML文件夹 string xmlPath = @"..\..\MRXMLFile";//路径xml文件夹 ClearXMLFile(xmlPath); //解压 bool a = false;//解压是否成功 string[] files = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories); if (files.Length == 0) { return(false); } foreach (string file in files) { if (Path.GetExtension(file) == ".zip") { a = Decompress(file, xmlPath); if (!a) { return(false); } } } //读取XML List <MrTableAllColumn> mrTableAllColumn = new List <MrTableAllColumn>(); string[] xmlFiles = Directory.GetFiles(xmlPath, "*.*", SearchOption.AllDirectories); if (xmlFiles.Length == 0) { return(false); } foreach (string file in xmlFiles) { if (Path.GetExtension(file) == ".xml") { mrTableAllColumn.AddRange(GetMrtable(file)); } } xmlNumber = mrTableAllColumn.Count(); //Mr数据入库 using (var db = new LROSRDbContext(deName)) { db.Configuration.AutoDetectChangesEnabled = false; db.Configuration.ValidateOnSaveEnabled = false; //db.anto int KPid = 0;//设置主键ID int columnNumber = db.MrTableAllColumn.Count(); if (columnNumber != 0) { KPid = db.MrTableAllColumn.Select(q => q.KPid).Max() + 1; } foreach (MrTableAllColumn item in mrTableAllColumn) { item.KPid = KPid; KPid++; } db.MrTableAllColumn.AddRange(mrTableAllColumn); try { dbNUmber = db.SaveChanges(); if (dbNUmber != xmlNumber) { return(false); } } catch (Exception ex) { throw ex; } //得到列数据和表头数据的列表 var column = from q in db.MrTableAllColumn select q; var table1 = from q in column group q by new { q.fileFormatVersion, q.tabletype, q.mrName } into m select m.Key; var table2 = from q in table1 select new MRTableList { tabletype = q.tabletype, Version = q.fileFormatVersion, tableName = q.mrName }; foreach (MrTableAllColumn item in column) { MrTableAllColumn mrTableAllColumn1 = SingletonMrData.DeepCopy <MrTableAllColumn>(item); SingletonMrData.mrAllcolumnL.Add(mrTableAllColumn1); } foreach (MRTableList item in table2) { MRTableList mRTableList = SingletonMrData.DeepCopy <MRTableList>(item); SingletonMrData.mrTableL.Add(item); } } return(true); }