Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }