Laden...

The model backing the context has changed. Code First Update hilft nicht

Erstellt von Neokil vor 8 Jahren Letzter Beitrag vor 8 Jahren 743 Views
Neokil Themenstarter:in
206 Beiträge seit 2008
vor 8 Jahren
The model backing the context has changed. Code First Update hilft nicht

Hallo ihr Lieben,

ich bin grade dabei eine Webseite (MVC) zu schreiben und habe dort eine Datenbank über Code First Migration und das EF eingebunden.
Ich war noch viel mit der Geschäftslogik beschäftigt und da haben sich im Laufe der Zeit einige Modelle geändert. Unter anderem wurde das "Problemmodell" umbenannt (GameProfileFieldEntries => GameProfileFieldEntry).
Rufe ich jetzt den zugehörigen Controller auf, kommt folgende Fehlermeldung: (Anhang, Oberer Teil)

Das Model:


    public class GameProfileFieldEntry
    {
        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int GameProfileFieldEntryId { get; set; }
        public GamesModel Game { get; set; }
        public String Label { get; set; }
        public GameProfileFieldType Type { get; set; }
    }

Der DBContext:


    public class GameProfileFieldEntryContext : DbContext
    {
        public GameProfileFieldEntryContext() : base("name=GameProfileFieldEntryContext")
        {}

        public System.Data.Entity.DbSet<PAYP.Models.Games.GameProfileFieldEntry> GameProfileFieldEntries { get; set; }
    }

Im Serverexplorer habe ich auch noch die Struktur der aktuellen Datenbanktabelle rausgesucht:
(Anhang, Unterer Teil)

also ich habe schon versucht über die PM-Konsole über "Enable-Migrations", "Add-Migration", "Update-Database" die Datenbank zu updaten, aber dann findet er keine Änderungen.

Würde mich über jeden Tipp freuen.

Gruß
Neokil

16.828 Beiträge seit 2008
vor 8 Jahren

Es sieht so bequem aus aber es ist alles andere als empfehlenswert, dass Entities in die View geführt werden - auch wenn das MS in ihren Beispielen so zeigt.
[Artikel] Drei-Schichten-Architektur - ASP.NET MVC – Arbeiten mit View- und SubmitModels

Das gilt auch für die WebAPI.
PS: schau Dir hier evtl. mal OData an, das Dir einen Standard für REST bietet.

Zum Fehler: nutzt Du evtl. einen Context für mehrere Threads?

Neokil Themenstarter:in
206 Beiträge seit 2008
vor 8 Jahren

Also der Context wird nur von dem einen Controller verwendet.

Kann ich evtl. die Datenbank irgendwie löschen und neu erstellen?

2.207 Beiträge seit 2011
vor 8 Jahren

Klar kannst du das. Ich mache das immer über das Management-Studio. Sollte aber auch über das VS gehen.

Neokil Themenstarter:in
206 Beiträge seit 2008
vor 8 Jahren

ja was muss ich da machen beim löschen?
Alle Tabellen aus der DB rauswerfen?

16.828 Beiträge seit 2008
vor 8 Jahren

Das Maximale ist das Droppen des Schemas, dann erstellt das EF das Schema bei der ersten Verwendung neu (Default Einstellung).
Wäre mir aber neu, dass das dieses hier beschriebene Problem lösen soll.

Neokil Themenstarter:in
206 Beiträge seit 2008
vor 8 Jahren

Sehr seltsam, ich habe die Datenbanktabellen gelöscht, kein Erfolg.
Habe dann den DBContext gelöscht und neu angelegt und jetzt funktioniert es...