protected virtual void PopulateParameters(DbCommand command, ColumnModification columnModification, IRelationalTypeMapper typeMapper) { if (columnModification.ParameterName != null || columnModification.OriginalParameterName != null) { var property = columnModification.Property; var isKey = columnModification.IsKey || property.IsKey() || property.IsForeignKey(); // TODO: It would be nice to just pass IProperty to the type mapper, but Migrations uses its own // store model for which there is no easy way to get an IProperty. // Issue #769 var extensions = _metadataExtensionProvider.Extensions(property); var typeMapping = typeMapper .GetTypeMapping(extensions.ColumnType, extensions.Column, property.ClrType, isKey, property.IsConcurrencyToken); if (columnModification.ParameterName != null) { command.Parameters.Add(typeMapping.CreateParameter(command, columnModification, false)); } if (columnModification.OriginalParameterName != null) { command.Parameters.Add(typeMapping.CreateParameter(command, columnModification, true)); } } }