Example #1
0
        private void GenerateCascadeUpdates(DatabaseInfo db, List<ChangeSetUpdateItem> res)
        {
            if (!IsUpdatingPk(db)) return;
            var table = db.FindTable(TargetTable);
            if (table == null) return;
            foreach (var fk in table.GetReferences())
            {
                var newItem = new ChangeSetUpdateItem
                    {
                        LinkedInfo = LinkedInfo,
                        TargetTable = fk.OwnerTable.FullName,
                    };
                newItem.Conditions.AddRange(GetPrefixedConditions(Conditions, fk.ConstraintName));
                res.Add(newItem);

                for (int i = 0; i < fk.Columns.Count; i++)
                {
                    string pkcol = fk.RefColumns[i].RefColumnName;
                    var val = Values.FirstOrDefault(x => x.Column == pkcol);
                    if (val == null) continue;

                    newItem.Values.Add(new ChangeSetValue
                        {
                            Column = fk.Columns[i].RefColumnName,
                            Value = val.Value,
                        });
                }
            }
        }
        private void GenerateCascadeUpdates(DatabaseInfo db, List <ChangeSetUpdateItem> res)
        {
            if (!IsUpdatingPk(db))
            {
                return;
            }
            var table = db.FindTable(TargetTable);

            if (table == null)
            {
                return;
            }
            foreach (var fk in table.GetReferences())
            {
                var newItem = new ChangeSetUpdateItem
                {
                    LinkedInfo  = LinkedInfo,
                    TargetTable = fk.OwnerTable.FullName,
                };
                newItem.Conditions.AddRange(GetPrefixedConditions(Conditions, fk.ConstraintName));
                res.Add(newItem);

                for (int i = 0; i < fk.Columns.Count; i++)
                {
                    string pkcol = fk.RefColumns[i].RefColumnName;
                    var    val   = Values.FirstOrDefault(x => x.Column == pkcol);
                    if (val == null)
                    {
                        continue;
                    }

                    newItem.Values.Add(new ChangeSetValue
                    {
                        Column = fk.Columns[i].RefColumnName,
                        Value  = val.Value,
                    });
                }
            }
        }