2016-08-31 3 views
2

ich eineEntity Framework Migration fügen Sie neue Spalte

[Table("View1")] 
    public class View1Model 
    { 
     [Key] 
     public int Id { get; set; } 
     public int Age { get; set; } 
    } 

ich da in der SQL-Datenbank eine andere public int Gewicht auf die Tabelle hinzufügen möchten Ansicht müssen sehen ich die Ansicht aktualisiert, aber die Migration wird nicht funktionieren.

Er sagt, wenn ich versuche, Datenbank zu aktualisieren, dass

Kann nicht ändern ‚dbo.View1‘, weil es kein Tisch ist.

Ich weiß, dass ich das ‚table‘ Attribut entfernen kann, aber das wird nicht funktionieren, weil ich

Antwort

2

in meinem code.Out der Frage müssen prüfen Wenn Sie add-migration es AddColumn() im Up() versuchen und DropColumn() in der Down(). Sie sollten diese Zeilen aus der Migration entfernen und die Ansicht manuell mit einem Sql(@"ALTER VIEW ...")-Befehl ändern, in dem Sie die Ansicht direkt in SQL ändern. Dadurch wird erreicht, was die automatische Migration versucht hat.

+1

Es gibt wirklich keine automatische Möglichkeit, dies zu tun? Sollte EF nicht erkennen, dass es eine Ansicht ist, keine Tabelle und dementsprechend handeln? – DanteTheSmith

Verwandte Themen