private void BuildForeignKeysCache()
        {
            _fkCache = new Dictionary<string, FKCacheEntry>();
            foreach (var tbl in Tables)
            {
                foreach (var cnst in tbl.Constraints)
                {
                    if (cnst is ForeignKeyConstraint == false)
                        continue;

                    var fk = cnst as ForeignKeyConstraint;
                    foreach (var col in fk.RefColumns)
                    {
                        var refTable = Tables.Find(t => t.Name == fk.RefTable);
                        if (refTable == null)
                            continue;
                        var key = string.Format("{0}_{1}", refTable.Name, col);
                        if (!_fkCache.ContainsKey(key))
                        {
                            var entry = new FKCacheEntry();
                            entry.Add(fk, tbl);
                            _fkCache.Add(key, entry);
                        }
                        else
                            _fkCache[key].Add(fk, tbl);
                    }
                }
            }
        }
Exemple #2
0
        private void BuildForeignKeysCache()
        {
            _fkCache = new Dictionary<string, FKCacheEntry>();
            foreach (var tbl in Tables)
            {
                foreach (var cnst in tbl.Constraints)
                {
                    if (cnst is ForeignKeyConstraint == false)
                        continue;

                    var fk = cnst as ForeignKeyConstraint;
                    foreach (var col in fk.RefColumns)
                    {
                        var refTable = Tables.Find(t => t.Name == fk.RefTable);
                        if (refTable == null)
                            continue;
                        var key = string.Format("{0}_{1}", refTable.Name, col);
                        if (!_fkCache.ContainsKey(key))
                        {
                            var entry = new FKCacheEntry();
                            entry.Add(fk, tbl);
                            _fkCache.Add(key, entry);
                        }
                        else
                            _fkCache[key].Add(fk, tbl);
                    }
                }
            }
        }