Exemple #1
0
 /// <summary>
 /// 生成增加外键约束的语句
 /// </summary>
 /// <param name="op">增加外键约束的对象</param>
 protected override void Generate(AddFKConstraint op)
 {
     using (var sql = this.Writer())
     {
         sql.Write("ALTER TABLE ");
         sql.Write(this.Quote(op.DependentTable));
         sql.Write(@" ADD CONSTRAINT ");
         sql.Write(this.Quote(op.ConstraintName));
         sql.Write(@" FOREIGN KEY ");
         sql.Write(this.Quote(op.DependentTable));
         sql.Write(@" (");
         sql.Write(this.Quote(op.DependentTableColumn));
         sql.Write(") REFERENCES ");
         sql.Write(this.Quote(op.PrincipleTable));
         sql.Write("(");
         sql.Write(this.Quote(op.PrincipleTableColumn));
         sql.Write(")");
         if (op.NeedDeleteCascade)
         {
             sql.Write(" ON DELETE CASCADE");
         }
         sql.Write(";");
         this.AddRun(sql);
     }
 }
        protected override void Generate(AddFKConstraint op)
        {
            var oldName = op.ConstraintName;

            PrepareFKConstraintName(op);
            base.Generate(op);

            op.ConstraintName = oldName;
        }
Exemple #3
0
 /// <summary>
 /// 生成增加外键约束的语句
 /// </summary>
 /// <param name="op">增加外键约束的对象</param>
 protected override void Generate(AddFKConstraint op)
 {
     //SQLite 不支持
 }
Exemple #4
0
 protected abstract void Generate(AddFKConstraint op);