示例#1
0
        private void UpdateDeleteCheck(FBDataModelRealtions model, Database db)
        {
            Sql sql  = new Sql("select id from FBDataModel where MainObectID=@0", model.ObjectID);
            var list = db.Fetch <Dictionary <string, object> >(sql);

            Sql sqlModel          = new Sql("select Code,Name,PKColName from FBDataModelObjects where id=@0", model.ModelObjectID);
            var SoucreModelObject = db.Single <Dictionary <string, object> >(sqlModel);



            db.Execute(new Sql("delete from FBModelDeleteCheck where ObjectID=@0 and RelationID=@1", model.ObjectID, model.ID));

            foreach (var item in list)
            {
                FBModelDeleteCheck modelCheck = new FBModelDeleteCheck();
                modelCheck.ID           = Guid.NewGuid().ToString();
                modelCheck.ModelID      = item["id"].ToString();
                modelCheck.ObjectID     = model.ObjectID;
                modelCheck.RelationID   = model.ID;
                modelCheck.TableName    = SoucreModelObject["code"].ToString();
                modelCheck.RefFilter    = " and " + model.ModelObjectColCode + "=@0 ";
                modelCheck.ExtendFilter = "";
                modelCheck.DeleteTip    = "数据{0}已经被" + SoucreModelObject["Name"].ToString() + "引用!";
                modelCheck.IsUsed       = "0";
                db.Save <FBModelDeleteCheck>(modelCheck);
            }
        }
示例#2
0
        public FBDataModelRealtions GetRelationInfo(string modelID, string ModelObjectID, string ModelObjectColID)
        {
            FBDataModelRealtions model = Db.FirstOrDefault <FBDataModelRealtions>("select * from FBDataModelRealtions where modelid=@0 and ModelObjectID=@1 and ModelObjectCol=@2", modelID, ModelObjectID, ModelObjectColID);

            if (model == null)
            {
                model = new FBDataModelRealtions();
            }
            if (string.IsNullOrEmpty(model.ID))
            {
                model.ID                 = Guid.NewGuid().ToString();
                model.ModelID            = modelID;
                model.ModelObjectID      = ModelObjectID;
                model.ModelObjectCol     = ModelObjectColID;
                model.JoinType           = "0";//0 左连接 1有链接 2 全链接
                model.ModelObjectColCode = Db.Single <string>("select Label from FBDataModelCols where ID=@0", ModelObjectColID);
                //model.ObjectColCode=ModelObjectID
            }
            else
            {
                model.ColList    = Db.Fetch <FBDataModelCols>("select * from FBDataModelCols where RelationID=@0", model.ID);
                model.ObjectName = Db.Single <string>("select AiasName from FBDataObject where ID=@0", model.ObjectID);
            }
            return(model);
        }
示例#3
0
        public void SaveRelation(FBDataModelRealtions model)
        {
            try
            {
                Db.BeginTransaction();
                //删除次字段的其他关联
                Db.Save <FBDataModelRealtions>(model);

                Db.Execute(new Sql("delete from FBDataModelCols where ParentID=@0 and RelationID=@1 and isRelated='1'", model.ModelObjectCol, model.ID));
                foreach (FBDataModelCols col in model.ColList)
                {
                    col.ParentID = model.ModelObjectCol;
                    //删除冗余字段
                    Db.Save <FBDataModelCols>(col);
                }
                saveDependence(model.ModelID, base.Db);

                UpdateDeleteCheck(model, base.Db);
                Db.CompleteTransaction();
            }
            catch (Exception ex)
            {
                base.Db.AbortTransaction();
                throw ex;
            }
        }