예제 #1
0
        public virtual void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
                                          string[] refColumns, ForeignKeyConstraint constraint)
        {
            if (ConstraintExists(primaryTable, name))
            {
                Logger.Warn("Constraint {0} already exists", name);
                return;
            }

            string constraintResolved = constraintMapper.SqlForConstraint(constraint);

            ExecuteNonQuery(
                String.Format(
                    "ALTER TABLE {0} ADD CONSTRAINT {1} FOREIGN KEY ({2}) REFERENCES {3} ({4}) ON UPDATE {5} ON DELETE {6}",
                    primaryTable, name, String.Join(",", primaryColumns),
                    refTable, String.Join(",", refColumns), constraintResolved, constraintResolved));
        }
예제 #2
0
 public virtual void AddForeignKey(string name, string primaryTable, string primaryColumn, string refTable, string refColumn, ForeignKeyConstraint constraint)
 {
     AddForeignKey(name, primaryTable, new string[] { primaryColumn }, refTable, new string[] { refColumn },
                   constraint);
 }
예제 #3
0
 /// <summary>
 /// Guesses the name of the foreign key and add it
 /// </see>
 /// </summary>
 public virtual void GenerateForeignKey(string primaryTable, string[] primaryColumns, string refTable,
                                        string[] refColumns, ForeignKeyConstraint constraint)
 {
     AddForeignKey("FK_" + primaryTable + "_" + refTable, primaryTable, primaryColumns, refTable, refColumns,
                   constraint);
 }
예제 #4
0
 public void GenerateForeignKey(string primaryTable, string refTable, ForeignKeyConstraint constraint)
 {
     GenerateForeignKey(primaryTable, refTable + "Id", refTable, "Id", constraint);
 }
예제 #5
0
 public override void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
                                    string[] refColumns, ForeignKeyConstraint constraint)
 {
     // NOOP Because SQLite doesn't support foreign keys
 }
예제 #6
0
 public void GenerateForeignKey(string primaryTable, string refTable, ForeignKeyConstraint constraint)
 {
     // No Op
 }
예제 #7
0
 public void AddForeignKey(string name, string primaryTable, string[] primaryColumns, string refTable,
                           string[] refColumns, ForeignKeyConstraint constraint)
 {
     // No Op
 }