diff --git a/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs b/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs
index 8f2cb20a..cfb58b72 100644
--- a/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs
+++ b/Oqtane.Server/Migrations/EntityBuilders/BaseEntityBuilder.cs
@@ -319,6 +319,19 @@ namespace Oqtane.Migrations.EntityBuilders
schema: Schema);
}
+ public virtual void AddForeignKey(string foreignKeyName, string columnName, string principalTable, string principalColumn, string principalSchema, ReferentialAction onDelete)
+ {
+ _migrationBuilder.AddForeignKey(
+ name: RewriteName(foreignKeyName),
+ table: RewriteName(EntityTableName),
+ column: RewriteName(columnName),
+ principalTable: RewriteName(principalTable),
+ principalColumn: RewriteName(principalColumn),
+ principalSchema: RewriteName(principalSchema),
+ onDelete: onDelete,
+ schema: Schema);
+ }
+
///
/// Creates a Migration to add an Index to the Entity (table)
///
@@ -368,6 +381,7 @@ namespace Oqtane.Migrations.EntityBuilders
column: foreignKey.Column,
principalTable: RewriteName(foreignKey.PrincipalTable),
principalColumn: RewriteName(foreignKey.PrincipalColumn),
+ principalSchema: RewriteName(foreignKey.PrincipalSchema),
onDelete: foreignKey.OnDeleteAction);
}
@@ -381,6 +395,7 @@ namespace Oqtane.Migrations.EntityBuilders
column: RewriteName(foreignKey.ColumnName),
principalTable: RewriteName(foreignKey.PrincipalTable),
principalColumn: RewriteName(foreignKey.PrincipalColumn),
+ principalSchema: RewriteName(foreignKey.PrincipalSchema),
onDelete: foreignKey.OnDeleteAction,
schema: Schema);
}
diff --git a/Oqtane.Server/Migrations/Framework/ForeignKey.cs b/Oqtane.Server/Migrations/Framework/ForeignKey.cs
index 533518ab..5f1bcd75 100644
--- a/Oqtane.Server/Migrations/Framework/ForeignKey.cs
+++ b/Oqtane.Server/Migrations/Framework/ForeignKey.cs
@@ -16,6 +16,16 @@ namespace Oqtane.Migrations
OnDeleteAction = onDeleteAction;
}
+ public ForeignKey(string name, Expression> column, string principalTable, string principalColumn, string principalSchema, ReferentialAction onDeleteAction)
+ {
+ Name = name;
+ Column = column;
+ PrincipalTable = principalTable;
+ PrincipalColumn = principalColumn;
+ PrincipalSchema = principalSchema;
+ OnDeleteAction = onDeleteAction;
+ }
+
public string Name { get; }
public Expression> Column { get;}
@@ -34,6 +44,8 @@ namespace Oqtane.Migrations
public string PrincipalColumn { get; }
+ public string PrincipalSchema { get; }
+
}
}