Diese Frage auf so viele Male in verschiedenen Geschmacksrichtungen gefragt wurde. Ich habe alle Antworten durchgegangen und viel Zeit verbrennen lassen. Ich kann einfach nicht funktionieren.-Code Erste Migration - Entity Framework - nicht in der Lage Spalte der Tabelle hinzuzufügen
Ich habe auf asp.net mvc Entity Framework, SQL-Server-App gearbeitet. Ich habe bereits eine Datenbank, Tabellen usw. und alles funktioniert. Ich muss nur eine neue Spalte zur Tabelle hinzufügen.
Also .. Ich habe eine Eigenschaft in der Modellklasse, so dass ich die Spalte der Tabelle hinzufügen könnte. Aber ohne Erfolg.
So kann ich die Schritte in der folgenden Reihenfolge.
Fügen Sie das Feld in meiner Modellklasse hinzu.
[Required] public string EmailSubject{ get; set; }
- dann den Ordner Migrationen in meinem asp.net MVC-Projekt enthält Configuration.cs Klasse erfolgreich
dann in Package Manager-Konsole Ausgabe folgende ich Befehl, den ich löschen.
Enable-Migrations -ContextTypeName AppointmentReminder.Data.ReminderDb -Force
Dann habe ich die Eigenschaft wahr als
public Configuration() { AutomaticMigrationsEnabled = true; }
Dann folgt ausgeben ich den folgenden Befehl in Paket-Manager-Konsole.
Update-Database -Verbose -Force
Hier ist, was meine Verbindungszeichenfolge Verbindung zur Datenbank auf Standard sieht aus wie
Data Source=(LocalDb)\v11.0;AttachDbFilename=C:\practice\AppointmentReminder4\AppointmentReminder4\App_Data\aspnet-AppointmentReminder4-20141202060615.mdf;Initial Catalog=aspnet-AppointmentReminder4-20141202060615;Integrated Security=True
aber vermag ich nicht die neue Spalte in meiner gewünschten Tabelle hinzuzufügen.
Edit 1
ich das Modell aktualisiert, wie ohne die erforderliche Attribut folgt und alle oben genannten Schritte durchgeführt, aber ich war immer noch nicht fähig, die Spalte der Tabelle hinzuzufügen.
Hier sind alle Befehle und ihre Ausgabe.
PM> Enable-Migrations -ContextTypeName AppointmentReminder.Data.ReminderDb -Force
Checking if the context targets an existing database...
Code First Migrations enabled for project AppointmentReminder4.
PM> Update-Database -Verbose -Force
Using StartUp project 'AppointmentReminder4'.
Using NuGet project 'AppointmentReminder4'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'aspnet-AppointmentReminder4-20141202060615' (DataSource: (LocalDb)\v11.0, Provider: System.Data.SqlClient, Origin: Configuration).
No pending explicit migrations.
Running Seed method.
PM> Update-Database -Verbose -Force
Using StartUp project 'AppointmentReminder4'.
Using NuGet project 'AppointmentReminder4'.
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
Target database is: 'aspnet-AppointmentReminder4-20141202060615' (DataSource: (LocalDb)\v11.0, Provider: System.Data.SqlClient, Origin: Configuration).
No pending explicit migrations.
Running Seed method.
PM>
Edit 2 Schließlich dieses Problem behoben. Alle meine obigen Schritte waren korrekt. Außer dass ich meine Modellklasse bearbeitet habe, im Gegensatz zu der tatsächlichen Datenklasse, die tatsächlich an das ReminderDb (EF-Objekt) gebunden ist. Nachdem ich die korrekte Klasse mit der Eigenschaft aktualisiert hatte, funktionierte alles erfolgreich. Danke an alle die mit Hilfe geantwortet haben!
Obwohl ich bereits beantwortet habe, was ich denke, die Antwort ist, dann sollten Sie zeigen, was Sie Fehler bekam. –