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); } }
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); }
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; } }