public void AddObject(string modelID, string objectID) { //获取数据对象列表 //获取数据对象字段信息 //处理数据 //保存 try { base.Db.BeginTransaction(); if (base.Db.Single <long>(new Sql("select count(1) from FBDataModelObjects where objectid=@0 and modelID=@1", objectID, modelID)) > 0) { throw new Exception("数据模型中已存在该数据对象!"); } List <FBDataModelCols> list = new List <FBDataModelCols>(); FBDataModelObjects model = new FBDataModelObjects(); FBDataObject obj_model = new FBDataObject(); obj_model = base.Db.SingleById <FBDataObject>(objectID); List <FBDataObjectCols> obj_list = new List <FBDataObjectCols>(); obj_list = base.Db.Fetch <FBDataObjectCols>(new Sql(@"select * from FBDataObjectCols where ObjectID=@0", objectID)); model.ID = Guid.NewGuid().ToString(); model.Code = obj_model.Code; model.Name = obj_model.AiasName; model.ModelID = modelID; model.ObjectID = objectID; model.isMain = "0"; model.Label = ""; model.isSave = "1";//默认是否保存勾选 model.Level = "2"; model.ParentID = base.Db.Single <string>( new Sql(@"select id from FBDataModelObjects where ModelID=@0 and level='1' and isMain='1'", modelID)); model.PKCOLName = obj_list.Where(p => p.IsPrimary == "1").ToList()[0].Code; model.Filter = ""; model.Sort = ""; base.Db.Save <FBDataModelObjects>(model); int i = 0; foreach (FBDataObjectCols col in obj_list) { FBDataModelCols mcol = new FBDataModelCols(); mcol.ID = Guid.NewGuid().ToString(); mcol.Code = col.Code; mcol.Name = col.Name; mcol.ModelID = modelID; mcol.ModelObjectID = model.ID; mcol.Label = col.Code; mcol.isCard = "1"; mcol.isList = "1"; mcol.isReadOnly = "0"; mcol.isRelated = "0"; mcol.isUpdate = "1"; mcol.isVirtual = "0"; mcol.VirtualExpress = ""; mcol.RelationID = ""; mcol.ParentID = ""; mcol.Ord = i.ToString(); mcol.Length = col.Length.ToString(); mcol.DataType = col.DataType; mcol.isPrimary = col.IsPrimary; base.Db.Save <FBDataModelCols>(mcol);//保存列表 i++; } this.Db.CompleteTransaction(); } catch (Exception ex) { base.Db.AbortTransaction(); throw ex; } }
public void AddModel(FBDataModel model) { try { base.Db.BeginTransaction(); //保存元数据 FBMetaData meta = new FBMetaData(); meta.ID = model.ID; meta.Type = "2"; meta.State = "1"; meta.Name = model.Name; meta.Code = model.Code; base.Db.Save <FBMetaData>(meta); //保存数据模型 base.Save(model); //获取数据对象信息 FBDataObject obj = new FBDataObject(); FBDataObjectService svr = new FBDataObjectService(this.context); List <FBDataObjectCols> list = new List <FBDataObjectCols>(); list = svr.GetColumn(model.MainObectID); obj = svr.GetModel(model.MainObectID); //保存主对象 FBDataModelObjects modelmain = new FBDataModelObjects(); modelmain.ID = Guid.NewGuid().ToString(); modelmain.ModelID = model.ID; modelmain.Code = obj.Code; modelmain.Name = obj.AiasName; modelmain.ObjectID = model.MainObectID; var listres = list.Where(p => p.IsPrimary == "1").ToList(); if (listres.Count <= 0) { throw new Exception("数据对象必须定义一个主键!"); } modelmain.PKCOLName = list.Where(p => p.IsPrimary == "1").ToList()[0].Code; modelmain.Level = "1"; modelmain.isMain = "1"; modelmain.Label = obj.Code; modelmain.ParentID = ""; base.Db.Save <FBDataModelObjects>(modelmain);//保存列信息 //保存子对象 foreach (FBDataObjectCols col in list) { FBDataModelCols mcol = new FBDataModelCols(); mcol.ID = Guid.NewGuid().ToString(); mcol.Code = col.Code; mcol.Name = col.Name; mcol.ModelID = model.ID; mcol.ModelObjectID = modelmain.ID; mcol.Label = col.Code; mcol.isCard = "1"; mcol.isList = "1"; mcol.isReadOnly = "0"; mcol.isRelated = "0"; mcol.isUpdate = "1"; mcol.isVirtual = "0"; mcol.VirtualExpress = ""; mcol.RelationID = ""; mcol.ParentID = ""; mcol.Length = col.Length.ToString(); mcol.DataType = col.DataType; mcol.isPrimary = col.IsPrimary; mcol.Ord = col.Ord; Db.Save <FBDataModelCols>(mcol); } FBMeta.AddMeataData(model.ID, model.Code, model.Name, "1", model.parentID, base.Db); this.Db.CompleteTransaction(); } catch (Exception ex) { base.Db.AbortTransaction(); throw ex; } }