private ForeignKey BuildForeignKey(DatabaseModel database, IForeignKey foreignKey) { Check.NotNull(foreignKey, "foreignKey"); var table = database.GetTable(foreignKey.EntityType.SchemaQualifiedName()); var referencedTable = database.GetTable(foreignKey.ReferencedEntityType.SchemaQualifiedName()); var columns = foreignKey.Properties.Select( p => table.GetColumn(p.ColumnName())).ToArray(); var referenceColumns = foreignKey.ReferencedProperties.Select( p => referencedTable.GetColumn(p.ColumnName())).ToArray(); var cascadeDelete = foreignKey.CascadeDelete(); var storeForeignKey = new ForeignKey( ForeignKeyName(foreignKey), columns, referenceColumns, cascadeDelete); table.AddForeignKey(storeForeignKey); return(storeForeignKey); }
private ForeignKey BuildForeignKey(DatabaseModel database, IForeignKey foreignKey) { Check.NotNull(foreignKey, "foreignKey"); var table = database.GetTable(GetSchemaQualifiedName(foreignKey.EntityType)); var referencedTable = database.GetTable(GetSchemaQualifiedName(foreignKey.ReferencedEntityType)); var columns = foreignKey.Properties.Select( p => table.GetColumn(p.ColumnName())).ToArray(); var referenceColumns = foreignKey.ReferencedProperties.Select( p => referencedTable.GetColumn(p.ColumnName())).ToArray(); var cascadeDelete = foreignKey.CascadeDelete(); var storeForeignKey = new ForeignKey( ForeignKeyName(foreignKey), columns, referenceColumns, cascadeDelete); table.AddForeignKey(storeForeignKey); return storeForeignKey; }