Die Migration ändert nichts an meiner Tabelle
Ich habe gerade Migrationen in meinem Projekt aktiviert und ein paar Felder hinzugefügtUserProfile
:
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Email { get; set; }
public string Description { get; set;}
public DateTime? CreatedOn { get; set; }
public DateTime? LastAccess { get; set; }
}
I Add-migration AddFieldsForUserProfile
und es entstand:
...
public override void Up()
{
AddColumn("dbo.UserProfile", "Email", c => c.String());
AddColumn("dbo.UserProfile", "Description", c => c.String());
AddColumn("dbo.UserProfile", "CreatedOn", c => c.DateTime());
AddColumn("dbo.UserProfile", "LastAccess", c => c.DateTime());
}
...
Update-database -verbose
ergab diese Ausgabe:
Target database is: 'Hifi.Models.HifiContext' (DataSource: (localdb)\v11.0, Provider: System.Data.SqlClient, Origin: Convention).
Applying code-based migrations: [201303311011083_AddFieldsForUserProfile].
Applying code-based migration: 201303311011083_AddFieldsForUserProfile.
ALTER TABLE [dbo].[UserProfile] ADD [Email] [nvarchar](max)
ALTER TABLE [dbo].[UserProfile] ADD [Description] [nvarchar](max)
ALTER TABLE [dbo].[UserProfile] ADD [CreatedOn] [datetime]
ALTER TABLE [dbo].[UserProfile] ADD [LastAccess] [datetime]
[Inserting migration history record]
Running Seed method.
Anscheinend ist alles gut gegangen, aber nachdem ich den Fehler erhalten habe, dass die Spalte CreatedOn nicht existiert, habe ich mit dem Server Explorer in die Datenbank geschaut, und tatsächlich fehlen alle 4 Spalten in meinerUserProfile
Tabelle. Was habe ich falsch gemacht?
Ich habe meinen Fehler gefunden. Irgendwie hatte ich zwei verschiedenemdf
Dateienaspnet-Hifi-20130330054424.mdf
undHifi.Models.HifiContext.mdf
die hatte die gleiche Dateigröße und ich nahm an, dass beide notwendig waren. Mein Server Explorer verwendete dieaspnetxx.mdf
und die Datenbankänderungen wurden an vorgenommenHifiContext.mdf
. Schande über mich.
Im Zusammenhang damit hatte ich Probleme, eine Liste aller registrierten Benutzer korrekt anzuzeigen. Es war immer leer, obwohl ich mich einwandfrei einloggen konnte. Irgendwie zum einloggenaspnetxx.mdf
wurde aber meine abgefragtMemberListController
abgefragtHifiContext.mdf
. Nachdem ich meine Verbindungszeichenfolge geändert hatte, hatte ich zunächst keine registrierten Benutzer, neue wurden hinzugefügtHifiContext.mdf
und die Liste funktionierte einwandfrei. Wie ist es passiert?