Die Anzahl der Elemente des konzeptionellen Typs stimmt nicht mit der Anzahl der Elemente des objektseitigen Typs überein

entity-framework

Frage

Ich verwende .net Framework 3.5 SP1.

Nach dem Hinzufügen einer Spalte zu einer Tabelle in Sql Server (sowie dem Ändern einer vorhandenen Spalte von der Erlaubnis, dass Nullen nicht nullfähig sind), kann ich mein Projekt nicht mehr ausführen, ohne diesen Fehler zu erhalten:

Die Anzahl der Mitglieder des konzeptionellen Typs 'XBRLDimensionalModel.axis_t' stimmt nicht mit der Anzahl der Mitglieder des objektseitigen Typs 'EOL.Xbrl.Persistence.Data.axis_t' überein. Stellen Sie sicher, dass die Anzahl der Mitglieder gleich ist.

Ich gab den Versuch auf, den generierten Code zu finden und zu korrigieren. Ich habe jetzt alle meine lokalen entitätsbezogenen Dateien gelöscht und neu generiert, indem ich noch einmal von vorne angefangen habe und ein neues Element hinzugefügt habe (ADO.NET Entity Data Model). Ich bekomme immer noch diesen Fehler.

Die einzige Möglichkeit, das Projekt jetzt auszuführen, besteht darin, alle meine ausstehenden Änderungen rückgängig zu machen und die letzte Version aus der Quellcodeverwaltung zu verwenden. Natürlich können Sie die beiden geänderten Datenbankspalten in nullfähig setzen.

Nach allem, was ich bisher gelesen habe, scheint es, als hätte ich mein Modell einfach aus der Datenbank "aktualisieren" können. Das hat zu dieser Ausnahme geführt (oben). Aber jetzt bin ich total verwirrt, dass ich trotz einer vollständigen Regeneration des Entitätsmodells und unterstützender Klassen immer noch diesen Fehler bekomme.

Ich habe die Eigenschaft meines edmx-Modells geändert: "Metadata Artifact Processing" in "In Ausgabeverzeichnis kopieren". Die Dateien Designer.cs, csdl, msl, ssdl scheinen alle mit den neuesten Änderungen der Datenbank in Einklang zu sein.

Die Ausnahme wird ausgelöst, wenn zum ersten Mal auf meine entityModel-Instanz verwiesen wird. Es ist also vor dem Laden oder Speichern der Daten aus der geänderten Tabelle.

irgendwelche Ideen, wo ich falsch gehe? Danke, TG

Akzeptierte Antwort

Öffnen Sie Ihr Modell als XML. Entfernen Sie alle Verweise auf diesen Typ aus der CSDL. Speichern und schließen Sie sie und öffnen Sie sie erneut in der GUI. Jetzt sollten Sie das Modell wie gewohnt aktualisieren können. Wenn dies nicht funktioniert, machen Sie dasselbe, aber entfernen Sie es auch von MSL.


Beliebte Antwort

Dieser Fehler kann auch auftreten, wenn die EDMX-Datei außerhalb von Visual Studio geändert wurde. Klicken Sie mit der rechten Maustaste auf die EDMX-Datei und klicken Sie auf "Benutzerdefiniertes Werkzeug ausführen".



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum