Esempio n. 1
0
        private void ProcessRelations()
        {
            foreach (IRelation r in Model.Relations)
            {
                if (r is ISubtypeRelation)
                {
                    creator.WriteLine(updater.WriteCommentLine(
                                          "Subtyping reference: {0} is a {1}",
                                          r.ForeignKey.ChildTable.FullName,
                                          r.ForeignKey.ParentTable.FullName));
                }

                ICodeWriterPlSql sql = Model.Lamp.CodeWritersFactory.CreateCodeWriterPlSql();
                sql.WriteCreateForeignKey(r, environment);
                creator.WriteFrom(sql);
                creator.WriteSeparator();

                WriteExecImmediatWhenNotExists(
                    "ALL_CONSTRAINTS",
                    String.Format("OWNER='{0}' AND CONSTRAINT_NAME='{1}' AND CONSTRAINT_TYPE='R'",
                                  r.ForeignKey.ChildTable.Persistence.Schema,
                                  r.ForeignKey.Name),
                    sql);
                updater.WriteLine();
                genie.Config.NotifyAssistants("Create", r, sql.ToString());
            }
        }