示例#1
0
        private void DoUnrelateIdToId(string srcTblName, string tgtTblName)
        {
            var srcTable = SelectedDataset
                           .Table
                           .FirstOrDefault(x =>
                                           x.name.ToLower() == srcTblName.ToLower());

            if (null == srcTable)
            {
                return;
            }

            var tgtTable = SelectedDataset
                           .Table
                           .FirstOrDefault(x =>
                                           x.name.ToLower() == tgtTblName.ToLower());

            if (null == tgtTable || srcTable.name == tgtTable.name)
            {
                return;
            }

            var relationship = SelectedDataset
                               .Relationship.FirstOrDefault(x =>
                                                            x.name == CRelationship.GetName(srcTable.name, tgtTable.name));

            if (null == relationship)
            {
                return;
            }

            SelectedDataset.Relationship.Remove(relationship);
            SaveConfiguration();
            LoadConfiguration();
        }
示例#2
0
        private void DoRelateIdToIdOnIdEqId(string srcTblName, string tgtTblName, string srcColName, string tgtColName)
        {
            var srcTable = SelectedDataset
                           .Table
                           .FirstOrDefault(x =>
                                           x.name.ToLower() == srcTblName.ToLower());

            if (null == srcTable)
            {
                return;
            }

            var tgtTable = SelectedDataset
                           .Table
                           .FirstOrDefault(x =>
                                           x.name.ToLower() == tgtTblName.ToLower());

            if (null == tgtTable)
            {
                return;
            }

            var srcCol = srcTable
                         .Column
                         .FirstOrDefault(x => x.name.ToLower() == srcColName.ToLower());

            if (null == srcCol)
            {
                return;
            }

            var tgtCol = tgtTable
                         .Column
                         .FirstOrDefault(x => x.name.ToLower() == tgtColName.ToLower());

            if (null == tgtCol || srcCol.DbType != tgtCol.DbType)
            {
                return;
            }

            var relationship = new CRelationship
            {
                name       = string.Format("{0}->{1}", srcTable.name, tgtTable.name),
                fromTable  = srcTable.name,
                toTable    = tgtTable.name,
                fromColumn = srcCol.name,
                toColumn   = tgtCol.name
            };

            if (SelectedDataset.Relationship.Any(x => x.name == relationship.name))
            {
                return;
            }

            var currentDatasetName = SelectedDataset.name;
            var currentTableName   = null != CurrentTable ? CurrentTable.Root.ConfigTable.name : string.Empty;

            SelectedDataset.Relationship.Add(relationship);
            SaveConfiguration();
            LoadConfiguration();
        }