示例#1
0
        public string GetPathLabel(string table)
        {
            string    result = "";
            TablePath path   = paths[table];

            while (path != null)
            {
                result = T.AppendTo(path.referencedTable.objectName, result, ".");
                path   = path.pathThrough;
            }
            return(result);
        }
示例#2
0
        void GetAccessibleTablesThroughReference(TablePath path)
        {
            DbTable t = table;

            foreach (DbTableConstraint constraint in t.references.Each())
            {
                if (constraint.isForeignKey || constraint.type == "inferred")
                {
                    if (!paths.ContainsKey(constraint.dbTable.objectName))
                    {
                        if (constraint.dbTable != table)
                        {
                            TablePath p = new TablePath(constraint, path, true);
                            paths.Add(constraint.dbTable.objectName, p);
                            // GetAccessibleTablesThroughReference(p);
                        }
                    }
                }
            }
        }
示例#3
0
        void GetAccessibleTables(TablePath path)
        {
            DbTable t = path == null ? table : path.referencedTable;

            foreach (DbTableConstraint constraint in t.constraints.Values)
            {
                if (constraint.isForeignKey || constraint.type == "inferred")
                {
                    if (!paths.ContainsKey(constraint.referencedTable.objectName))
                    {
                        if (constraint.referencedTable != table)
                        {
                            TablePath p = new TablePath(constraint, path);
                            paths.Add(constraint.referencedTable.objectName, p);
                            GetAccessibleTables(p);
                        }
                    }
                }
            }
        }
示例#4
0
 public TablePath(DbTableConstraint c, TablePath p, bool r = false)
 {
     constraint  = c;
     isReference = r;
     pathThrough = p;
 }