Ändern der Spaltenstandardwerte in EF5 Code First

Ich versuche CF zu verwenden, um ein Modell für eine vorhandene Datenbank zu erstellen. Ich habe eine Spalte, in der ich vergessen habe, einen vernünftigen Standardwert festzulegen. Und anstatt die Reinheit der ursprünglichen Migration zu gefährden, indem ich sie ändere, habe ich mir nur gedacht, dass ich eine weitere Migration erstellen würde (dafür sind Migrationen gedacht, oder? :)

public override void Up()
{
    AlterColumn("Config", "DefaultTaxPerDollar", c => c.Decimal(nullable: false, precision: 19, scale: 5, defaultValue: 0.087m));
}

public override void Down()
{
    AlterColumn("Config", "DefaultTaxPerDollar", c => c.Decimal(nullable: false, precision: 19, scale: 5, defaultValue: 0.0m));

}

Aber das ergibtColumn already has a DEFAULT bound to it. Fehler vom SQL Server.

Wie ändert man einen Standardwert mit CF-Migrationen? Oder wie entfernt man einfach einen Standardwert (und erstellt ihn anschließend mit einem anderen Wert neu)?

Bearbeiten:

Hier wird die SQL generiert:

ALTER TABLE [Config] ADD CONSTRAINT DF_DefaultTaxPerDollar DEFAULT 0.087 FOR [DefaultTaxPerDollar]
ALTER TABLE [Config] ALTER COLUMN [DefaultTaxPerDollar] [decimal](19, 5) NOT NULL

Ich denke ich habe vielleicht eine Lösung gefunden, um das zu nutzenSql() Methode mit einigen komplexen SQL inspiriert vondiese Post. Das Problem ergibt sich aus der Tatsache, dass SQL Server Einschränkungen verwendet, um Standardeinstellungen (OH! Wie ich MySQL vermisse!) Mit einem generierten Namen für die Einschränkung zu implementieren. Daher konnte das Code First-Team den Standardwert nicht einfach ändern oder entfernen / neu erstellen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage