Das Modell, das den Kontext 'ApplicationDbContext' unterstützt, hat sich seit der Erstellung der Datenbank geändert

84

Erstens habe ich diesen Fehler nirgendwo anders gesehen und ich denke, es ist kein Replikat. Bitte lesen Sie zuerst die gesamte Situation.

Alles hat gut funktioniert, dann habe ich versucht, eine meiner Modellklassen zu aktualisieren (die App-Klasse und das Update werden jetzt kommentiert), die ich unten auflisten werde. und boom ich hatte diesen hässlichen fehler.


Das Modell, das den Kontext 'ApplicationDbContext' unterstützt, hat sich seit der Erstellung der Datenbank geändert. Erwägen Sie die Verwendung von Code First Migrations zum Aktualisieren der Datenbank ( http://go.microsoft.com/fwlink/?LinkId=238269 ). unter System.Data.Entity.CreateDatabaseIfNotExists 1.InitializeDatabase(TContext context) at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassf1.b__e () unter System.Data.Entity.Internal.InternalContext.PerformInitializationAction (Aktionsaktion) unter System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization (). Internal.LazyInternalContext.b__4 (InternalContext c) bei System.Data.Entity.Internal.RetryAction 1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action1-Aktion) bei System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase () bei System.Data.Entity.Internal.InternalTon entityType) bei System.Data.Entity.Internal.Linq.InternalSet1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet1.Include (String-Pfad) bei System.Data.Entity.Infrastructure.DbQuery 1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryable1-Quelle, String-Pfad) bei System.Data.Entity.QueryableExtensions.Include [T, TProperty] (IQueryable 1 source, Expression1-Pfad) bei Microsoft.AspNet.Identity. EntityFramework.UserStore 6.GetUserAggregateAsync(Expression1-Filter) bei Microsoft.AspNet.Identity.EntityFramework.UserStore 6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager2.FindByNameAsync (String userName) bei Microsoft.AspNet.Identity.UserManager`2.d__12.MoveNext () --- Ende der Stapelverfolgung vom vorherigen Speicherort wo Ausnahme wurde ausgelöst --- bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task-Task) bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task-Task) bei ControlPanel.Web.Controllers.Axtount : \ Projects \ FULL \ Control Panel \ ControlPanel.Web \ Controllers \ AccountController.cs: Zeile 56

Zuerst dachte ich, es könnte sich um ein Migrationsproblem handeln, also habe ich die Datenbank vollständig gelöscht, die Migrationen wieder aktiviert, eine Init-Migration hinzugefügt und die Datenbank mithilfe von aktualisiert

update-database -force -verbose

Ohne Beschwerden läuft alles gut, aber wenn ich versuche, mich auf meiner Website anzumelden, wird der vorherige Fehler angezeigt. Ich habe die Migrationssache ungefähr zehn Mal durchgeführt, ohne das Problem lösen zu können.

Hier sind meine Domainklassen (Modelle):

public class App
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual int AppId { get; set; }
    //[Required]
    public virtual string FacebookId { get; set; }
    //[Required]
    public virtual string Secret { get; set; }      
    public virtual List<User> Users { get; set; }
    public virtual List<Post> Posts { get; set; }      
    //public virtual ApplicationUser Admin { get; set; }
}

public class Post
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual int PostId { get; set; }
    public virtual string Content { get; set; }
    public virtual string Link { get; set; }
    public virtual string Image { get; set; }
    public virtual bool IsSpecial { get; set; }
    //[Required]
    public virtual App App { get; set; }
    //[Required]
    public virtual DateTime? PublishDate { get; set; }
}

public class User
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public virtual int UserId { get; set; }

    [MaxLength(500)]
    public virtual string FacebookId { get; set; }

    [MaxLength(500)]
    public virtual string Token { get; set; }

    //[Required]
    public virtual App App { get; set; }
}

Hier sind meine IdentityModels:

public class ApplicationUser : IdentityUser
{
    public virtual List<App> Apps { get; set; }
    public bool? IsPremium { get; set; }
    [DataType(DataType.Date)]
    public DateTime? LastPublishDateTime { get; set; }
}

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("dCon")
    {
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<IdentityUser>().ToTable("Admins");
        modelBuilder.Entity<ApplicationUser>().ToTable("Admins");
        modelBuilder.Entity<IdentityUserRole>().ToTable("AdminRoles");
        modelBuilder.Entity<IdentityUserLogin>().ToTable("Logins");
        modelBuilder.Entity<IdentityUserClaim>().ToTable("Claims");
        modelBuilder.Entity<IdentityRole>().ToTable("Roles");
    }
}
a7madx7
quelle
Sind Sie sicher, dass Sie dieses Problem anderswo nicht gesehen haben? Was ist mit diesem Link? stackoverflow.com/questions/3600175/…
AndreCruz
4
Nein, sie sind nicht die gleichen, die ich Ihnen versichern kann. Ich habe die dort bereitgestellte Lösung ohne Ergebnisse ausprobiert. Der Fehler lautet: Entweder manuell löschen / aktualisieren der Datenbank. Meiner sagt: Erwägen Sie die Verwendung von Code First Migrations um die Datenbank zu aktualisieren
a7madx7

Antworten:

139

Nur für den Fall, dass jemand anderes darauf stößt, der eine Datenbank-erste Implementierung wie ich durchgeführt hat.

Ich habe eine Änderung vorgenommen ApplicationUser, indem ich die Klasse erweitert und dem Feld ein neues Feld hinzugefügt habeAspNetUsers Tabelle habe und diesen Fehler beim Start hatte.

Ich konnte dies beheben, indem ich den in der __MigrationHistoryTabelle erstellten Datensatz löschte (es gab nur einen Datensatz). Ich gehe davon aus, dass EF entschieden hat, dass ich meine Datenbank mit dem Migrationstool aktualisieren muss - aber ich hatte dies bereits manuell selbst getan.

Josh
quelle
1
Datenbank zuerst auch und dies hat es behoben. Der einzige Datensatz dort war die anfängliche Erstellung, bei der zuerst Code ausgeführt wurde. Ich habe ihn jedoch geändert, nachdem ich zuerst die Datenbank verwendet und die Tabelle in MS SQL Server geändert habe.
SolidSnake4444
Hat funktioniert. Ich habe den Fehler erhalten, als ich eine Gerüstansicht hinzugefügt habe. Die Datenkontextklasse der Ansicht warApplicationDbContext
Vincent Saelzler
77

Das hat bei mir funktioniert - keine weiteren Änderungen erforderlich.

DELETE FROM [dbo].[__MigrationHistory]
Daniel de Zwaan
quelle
1
Hat auch für mich gearbeitet. Sehr seltsame Lösung. Ich denke, es gab eine gebrochene Migration in der Geschichte. Ich werde versuchen, alle Migrationen zu löschen und die erste erneut zu erstellen.
Hakan
1
@ Dave Voyles Sie können diese SQL direkt in SSMS ausführen
Daniel de Zwaan
1
Hat auch für mich funktioniert. In einer Datenbank existierte diese Tabelle, während sie in einer anderen Datenbank nicht existierte
Tejas
1
Die obigen Antworten können mir nicht helfen, da meine Codes bis zum letzten Modellupdate einwandfrei funktionierten. Ihre Antwort hat es geschafft. Prost Mann !!
Sithu
3
Dies hat bei mir NICHT funktioniert und dazu geführt, dass ich die Datenbank löschen, die Migrationen erneut ausführen und die Daten erneut hinzufügen musste. IN ACHT NEHMEN.
Adamonstack
35

Dieser Beitrag hat mein Problem behoben. Es ist alles über die folgende Zeile in Application_Start()in Global.asax:

Database.SetInitializer<Models.YourDbContext>(null);

Es führt jedoch zu einer Neuerstellung der Datenbank bei jeder Bearbeitung in Ihrem Modell, und Sie können Ihre Daten verlieren.

Amin Saqi
quelle
4
Ich möchte nicht, dass meine Daten beschädigt werden oder verloren gehen.
Sagte Roohullah Allem
Nicht der beste Ansatz, Sir. Lösung Aber nicht zuverlässig
Ahsan Aftab
13

Wenn Sie die Tabelle "[__MigrationHistory]" aus Ihrer "Datenbank> Systemtabellen" löschen, funktioniert dies.

Aniket Sharma
quelle
Es klappt. Nach dem Löschen der [__MigrationHistory] Tabelle aktualisieren Sie jedoch auch das EDMX-mmodel.
Entwickler
12

Es war so ein seltsamer Fehler. Es war nicht mein Fehler am Ende, sondern der von Microsoft. Ich habe das Entity-Framework in der "Pre-Release" -Version installiert und es war für diesen Fehler verantwortlich, als ich auf den Stable aktualisiert habe Lassen Sie es verschwinden. Vielen Dank. Alle glauben mir, als ich diese Frage gestellt habe. Ich habe ungefähr eine Woche lang nach ihrer Lösung gesucht. Ich bin mir ziemlich sicher, dass dieses Problem nirgendwo anders auftritt: Die Version der Entity Framework.dll, die das verursacht hat Problem war 6.0.2, wenn es hilft.

a7madx7
quelle
12

Jeder, der durch diesen Fehler Kopfschmerzen bekommt: Stellen Sie unbedingt sicher, dass alle Ihre Projekte einen Verweis auf dieselbe Entity Framework-Assembly haben.

Kurzgeschichte lang:

Mein Modell und meine Anwendung befanden sich in verschiedenen Baugruppen. Diese Assemblys verweisen auf eine andere Version des Entity-Frameworks. Ich denke, dass die beiden Versionen eine unterschiedliche ID für dasselbe Modell generiert haben. Als meine Anwendung ausgeführt wurde, stimmte die ID des Modells nicht mit der neuesten Migration in __MigrationHistory überein. Nach dem Aktualisieren aller Verweise auf die neueste EF-Version wurde der Fehler nie wieder angezeigt.

Hari
quelle
Ja, das war mein Fall, die meisten Projekte waren mit ef6.1.3, während das neu erstellte Testprojekt irgendwie mit ef6.0 war.
ZZZ
7

Ich habe viele Tage damit verbracht, dieses Problem zu lösen, viele verschiedene Beiträge analysiert und viele Optionen ausprobiert und schließlich behoben. Diese 2 Projekte in meiner Lösung mit EF-Code erste Migrationen:

  • Konsolenanwendung "DataModel", die hauptsächlich als Assembly verwendet wird und alle meine Code-First-Entities, DbContext, Mirgations und das generische Repository enthält. Ich habe diesem Projekt eine separate leere lokale Datenbankdatei (im Ordner DataModel / App_Data) hinzugefügt, um Migrationen von der Package Manager-Konsole generieren zu können.
  • WebApi, das auf das DataModel-Projekt verweist und eine lokale Datenbankdatei aus dem Ordner WebApi / App_Data verwendet, die nicht im Projekt enthalten ist

Ich habe diesen Fehler erhalten, als ich WebApi angefordert habe ...

Meine Umgebung:

  • Windows 8.1 x64
  • Visual Studio 2015 Professional mit Update 1
  • Alle meine Projekte für .NET Framework 4.6.1
  • EntityFramework 6.1.3 von NuGet

Hier habe ich alle Anmerkungen gesammelt, auf die Sie achten sollten, sowie alle Bedingungen / Anforderungen, die erfüllt sein müssen, um die genannten Ausnahmen zu vermeiden:

  1. Sie sollten für alle Projekte in Ihrer Lösung nur eine Version des EntityFramework Nuget-Pakets verwenden.
  2. Datenbank, die durch sequentielles Ausführen aller Migrationsskripte erstellt wurde, sollte dieselbe Struktur / dasselbe Schema wie Ihre Zieldatenbank haben und dem Entitätsmodell entsprechen. Die folgenden 3 Dinge müssen genau übereinstimmen / reflektieren / übereinstimmen:
    • Ihr gesamtes Migrationsskript ist auf dem neuesten Stand
    • Aktueller Status des ersten Code-Entitätsmodells (DbContext, Entitäten)
    • Zieldatenbank
  3. Die Zieldatenbank (MDF-Datei) sollte aktualisiert werden / dem letzten Migrationsskript entsprechen. Stellen Sie sicher, dass die Tabelle "__MigrationHistory" in Ihrer Zieldatenbank Datensätze für alle vorhandenen Migrationsskripte enthält. Dies bedeutet, dass alle Migrationsskripte erfolgreich auf diese Datenbank angewendet wurden. Ich empfehle Ihnen, Visual Studio zu verwenden, um korrekte Code-First-Entitäten und -Kontexte zu generieren, die Ihrer Datenbank entsprechen. Projekt -> Neues Element hinzufügen -> ADO.NET-Entitätsdatenmodell -> Code First aus der Datenbank: Natürlich als Alternative, wenn Sie haben keine Datenbank, die Sie manuell schreiben können (Code zuerst Entitäten und Kontext) und dann die erste Migration und Datenbank generieren können.
  4. Name der Verbindungszeichenfolge, z. B. MyConnectionString in der Konfigurationsdatei des Startprojekts (Web.config / App.config):

    <configuration>
      <connectionStrings>
        <add name="MyConnectionString" connectionString="...">
      </connectionStrings>
    <configuration>

    sollte gleich dem Parameter sein, der im Konstruktor Ihres DbContext übergeben wurde:

     public partial class MyDbContext : DbContext
     {
        public MyDbContext()
           : base("name=MyConnectionString"){}
        ...
  5. Stellen Sie vor der Verwendung der Package Manager-Konsole sicher, dass Sie die richtige Datenbank zum Aktualisieren oder Generieren der Migration verwenden und das erforderliche Projekt als Startprojekt der Lösung festgelegt ist. Für die Verbindung zur Datenbank wird die Verbindungszeichenfolge aus dieser .config-Datei verwendet, die im Projekt als Startprojekt festgelegt ist.
  6. Und das Hauptproblem, das mein Problem behoben hat: Es ist seltsam, aber in meinem WebApi / bin-Ordner war DataModel.exe alt und wurde seit dem letzten Build nicht aktualisiert. Da Migrationen in meine Assembly DataModel.exe eingebettet waren, aktualisierte meine WebApi-Datenbank mithilfe alter Mirgationen. Ich war verwirrt, warum die Datenbank nach dem Aktualisieren in WebApi nicht dem neuesten Migrationsskript von DataModel entspricht. Der folgende Code erstellt automatisch (falls nicht vorhanden) oder aktualisiert die neueste lokale Migrationsdatenbank in meinem WebApi / App_Data-Ordner.

       public class WebApiApplication : System.Web.HttpApplication
       {
           protected void Application_Start()
           {
               Database.SetInitializer(new MigrateDatabaseToLatestVersion<ODS_DbContext, Configuration>()); 
               ...

    Ich habe versucht, die Lösung zu bereinigen und neu zu erstellen, aber es hat nicht geholfen, als ich die Ordner bin und obj vollständig aus WebApi entfernt, Datenbankdateien aus WebApi / App_Data gelöscht, WebApi erstellt, neu gestartet, eine Anfrage gestellt und eine korrekte Datenbank erstellt habe - verzögerte Initialisierung (mit Zeilen oben), was der letzten Migration entspricht, und Ausnahme wurde nicht mehr angezeigt. Dies kann also Ihr Problem beheben:

    1. Entfernen Sie manuell bin, obj-Ordner aus Ihrem Startprojekt (das Ihre Datenbank generiert / aktualisiert).
    2. Erstellen Sie Ihr Startprojekt oder bereinigen Sie Ihre gesamte Lösung und erstellen Sie sie neu.
    3. Erstellen Sie die Datenbank neu, indem Sie das Projekt starten (führt die obigen Zeilen aus), oder verwenden Sie den Befehl "update-database" der Package Manager Console.
    4. Überprüfen Sie manuell, ob die generierte Datenbank und __MirgationHistory dem neuesten Migrationsskript entsprechen.
Sergey Kulgan
quelle
3

Dies kann passieren, wenn Sie die Datenanmerkung einer Modelleigenschaft ändern. Zum Beispiel: Hinzufügen von [Erforderlich] einer Eigenschaft wird das Datenbankdesign ausstehend geändert.

Die sicherste Lösung ist die Ausführung auf der Package Manager-Konsole:

add-migration myMirgrationName

Hier werden die genauen Änderungen in der Up () -Methode angezeigt. Daher können Sie entscheiden, ob Sie solche Änderungen wirklich anwenden möchten, indem Sie:

update-database

Andernfalls können Sie einfach die letzte Migration aus der Tabelle __MigrationHistory und im Projektmappen-Explorer aus dem Ordner Migrations löschen.

Mohamed Nagieb
quelle
Dies ist definitiv die beste Antwort, die ich hier gesehen habe. Der Vorschlag, den Migrationsverlauf zu löschen, ist meiner Meinung nach eine sehr schlechte Idee!
Mumenier
Vielen Dank für Ihren Kommentar. Normalerweise empfehle ich auch nicht, den Migrationsverlauf zu löschen, aber in bestimmten Fällen war der vorherige Migrationspunkt nicht zu unterschiedlich - dh das OP hat nicht viele Modelländerungen vorgenommen -, sodass ich dachte, dass ein einziger Schritt zurück helfen kann , indem nur die allerletzten Migrationsdatensätze gelöscht werden.
Mohamed Nagieb
2

Ich hatte das gleiche Problem wie a7madx7, aber mit einer stabilen Version von EF (v6.1.1) und fand eine Lösung in:

http://cybarlab.com/context-has-changed-since-the-database-was-created

mit Variation in: http://patrickdesjardins.com/blog/the-model-backing-the-context-has-changed-since-the-database-was-created-ef4-3

Der zweite Link enthält eine spezielle Erwähnung für VB ..... "Sie können einfach den gesamten Datenbankkontext, bei dem dieses Problem auftritt, in Ihre app_start-Methode in der Datei global.asax wie folgt einfügen" :

Database.SetInitializer(Of DatabaseContext)(Nothing)

NB: Ich musste "DatabaseContext" durch den Namen meiner Klasse ersetzen, die DbContext implementiert

Update: Wenn Sie den Codefirst-Ansatz verwenden, um eine Verbindung zu vorhandenen Tabellen herzustellen, überprüfen Sie die Datenbank, um festzustellen, ob EF eine Tabelle "_migrationhistory" zum Speichern von Zuordnungen erstellt hat. Ich habe diese Tabelle umbenannt und konnte dann SetInitializer aus global.asax entfernen.

user3085342
quelle
2

Löschen Sie einfach den Migrationsverlauf in _MigrationHistory in Ihrer Datenbank. Es hat bei mir funktioniert

k.demas
quelle
1

Ich habe gerade ein ähnliches Problem gelöst, indem ich alle Dateien im Website-Ordner gelöscht und dann erneut veröffentlicht habe.

Daniel Björk
quelle
1

Entfernen Sie alle Tabellenidentitäten

Delete _MigrationHistory
Delete AspNetRoles
Delete AspNetUserClaims
Delete AspNetUserLogins
Delete AspNetRoles
Delete AspNetUser
Majid Joghataey
quelle
1

Klicken Sie im Menü Extras auf NuGet Package Manager und dann auf Package Manager Console (PMC). Geben Sie die folgenden Befehle in das PMC ein.

Enable-Migrations Add-Migration Init Update-Datenbank Führen Sie die Anwendung aus. Die Lösung des Problems ist von hier

Sultan
quelle
1

Bei der Entwicklung bevorzuge ich die Verwendung dieser praktischen Klasse zum Konfigurieren von Migrationen.

Ich hoffe es hilft.

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)
    {
        this.Configuration.LazyLoadingEnabled = false;
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
        modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();

        Database.SetInitializer(new StackOverflowInitializer());
    }

    public class StackOverflowInitializer : DropCreateDatabaseIfModelChanges<ApplicationDbContext>
    {
        public StackOverflowInitializer()
        {
            // TODO NOTHING, COMMENT ALL

            // IF CHANGES, RECREATE
            Database.SetInitializer(new DropCreateDatabaseIfModelChanges<ApplicationDbContext>());

            // CREATE ONLY NOT EXITS
            //Database.SetInitializer<Context>(new CreateDatabaseIfNotExists<ApplicationDbContext>());
        }

    }

    public System.Data.Entity.DbSet<stackoverflow.Models.Company> Companies { get; set; }

}
Andre Mesquita
quelle
0

Das Löschen von Zeilen in der Tabelle [__MigrationHistory] mit Older productVersion hat bei mir funktioniert. Diese Antwort ist für diejenigen gedacht, die nicht die gesamte Tabelle [__MigrationHistory] löschen möchten. Löschen Sie einfach die Zeilen mit der älteren Version in der ProductVersion-Spalte. Hoffe es hilft jemandem!

Rajon Tanducar
quelle
0

Unten war die ähnliche Art von Fehler, auf die ich gestoßen bin

Das Modell, das den 'PsnlContext'-Kontext unterstützt, hat sich seit der Erstellung der Datenbank geändert. Erwägen Sie die Verwendung von Code First Migrations zum Aktualisieren der Datenbank ( http://go.microsoft.com/fwlink/?LinkId=238269 ).

Ich habe den folgenden Abschnitt im Application Start-Ereignis von Global.asax hinzugefügt, um den Fehler zu beheben

Database.SetInitializer (null);

Dies hat das Problem behoben

Lati
quelle
0

Der Fehler bedeutet einfach, dass Ihre Modelle Änderungen aufweisen und nicht mit der Datenbank synchronisiert sind. Wechseln Sie daher zur Paketmanagerkonsole. add-migration foo2 Dies gibt einen Hinweis darauf, was das Problem verursacht. Vielleicht haben Sie etwas entfernt oder in meinem Fall entferne ich eine Datenanmerkung . Von dort aus können Sie die Änderung erhalten und sie hoffentlich in Ihrem Modell umkehren.

danach foo2 löschen.

Yusufm.Salh
quelle
0

Ich weiß, dass ich sehr spät bin, aber ich möchte auch einen Beitrag leisten. Dieser Fehler ist wirklich seltsam, da der Browser nicht verstehen kann, wie die Änderungen gerendert werden sollen, da sich die Klassen und ihre Eigenschaften möglicherweise geändert haben, aber nicht in die Datenbank übernommen wurden.

Also mach eine Sache,

Erstellen Sie mit diesem Befehl eine Migration in der Package Manager-Konsole (Tools> NuGet Package Manager> Package Manager-Konsole) :

Add-Migration UpdateMigration

Dabei ist UpdateMigration der Name Ihrer Migration. Sie können ihm einen beliebigen Namen geben, aber bitte geben Sie genau an.

Danach müssen wir nur noch die Datenbank aktualisieren, also führen Sie Folgendes aus:

Datenbank auf den neusten Stand bringen

Nachdem Sie Ihre Änderungen an der Datenbank vorgenommen haben, aktualisieren Sie einfach Ihren Browser und los geht's!

Hoffe das hilft.

noobprogrammer
quelle
0

Dies liegt daran, dass Sie einem Ihrer Modelle eine Eigenschaft hinzufügen und dies nicht getan haben update-Database. Um dies zu lösen, müssen Sie es aus dem Modell entfernen oder Sie müssen add-migration anyProperName mit diesen Eigenschaften und Update-database.

HeshanHH
quelle
0

Dieser Fehler trat bei mir auf, als ich Änderungen an meinem Modell vornahm und keine Migration für die Änderungen zum Aktualisieren der Datenbank durchführte.

Wenn Sie jemals Änderungen an Ihrem Modell im Code First-Migrationsschema vorgenommen haben

Vergessen Sie nicht, die Migration hinzuzufügen

add-migration UpdatesToModelProperites 

Der obige Befehl liest alle Änderungen, die Sie am Modell vorgenommen haben, und schreibt sie in die Methoden Up () und Down ().

Aktualisieren Sie dann einfach Ihre Datenbank mit dem folgenden Befehl.

update-database

Das hat bei mir funktioniert.

Raheel Khan
quelle
-2

Löschen Sie die vorhandene Datenbank, erstellen Sie eine neue Datenbank mit demselben Namen, kopieren Sie alle Daten ... es wird funktionieren

Faux
quelle