Ich habe also eine Tabelle in der Datenbank mit einer Spalte, die einfach ein Nvarchar (800) ist.
Wenn ich es versuche:
%Vor% Ich bekomme die Ausnahme in Catch: "The property 'text' is part of the object's key information and cannot be modified."
Wenn ich in die Tabelle gucke, sehe ich nichts unter "key" oder "index". Es ist also kein Schlüssel, ich verstehe nicht, warum C # mir falsche Informationen gibt. Nichts in SQL Management Studio sagt etwas darüber aus, dass "Text" ein Schlüssel oder ein Index ist. Was mache ich?
Zeigen Sie das Datenmodell an, indem Sie auf die edmx-Datei im Ordner Models doppelklicken.
Stellen Sie sicher, dass die Tasten richtig zugeordnet sind. Wenn Sie mit der rechten Maustaste auf eine Spalte klicken, können Sie die Entity Key-Eigenschaft umschalten. Sobald die betreffende Spalte nicht als Entitätsschlüssel markiert ist, sollten Sie in der Lage sein, den Wert zu aktualisieren.
Befolgen Sie diese einfachen Schritte
Schritt 1: Überprüfen Sie, ob Ihre Tabelle eine Primärschlüsselspalte in der Datenbank hat oder nicht. Wenn es keinen Primärschlüssel hat, fügen Sie einen Primärschlüssel hinzu. Wenn wir der Tabelle keinen Primärschlüssel hinzufügen, erstellt das Entitätsframework eine eigene Schlüsselsammlung und fügt alle darin enthaltenen Spalten hinzu.
Schritt 2: Öffnen Sie Ihre EDMX-Datei, um die Tabellenobjektzuordnung anzuzeigen. Sie können sehen, dass jede Tabellenspalte ein Symbol wie einen Primärschlüssel hat. Also schreibe auf deine Seite und aktualisiere .edmx aus der Datenbank.
Schritt 3: Wenn Sie immer noch die gleichen Primärschlüssel-Symbole in allen Spalten sehen, klicken Sie auf den Spaltennamen, den Sie einzeln aktualisieren möchten, und gehen Sie zum Eigenschaftenfenster und setzen Sie die Entity Key-Eigenschaft auf false.
Das Problem hierbei ist, dass Entity Framework keine Änderungen am Primärschlüssel der bestimmten Tabelle vornehmen kann. Wenn Sie jetzt keinen Primärschlüssel für Ihre Tabelle angegeben haben, betrachtet das Entitätsframework alles als Primärschlüssel, sodass Sie keine Änderungen an der Tabelle vornehmen können. Sie müssen einen Primärschlüssel in der Tabelle definieren, die Tabelle aus Ihrem Modell im Modellbrowser löschen und dann die Tabelle im Modell erneut hinzufügen. Dies soll es sicher beheben. Glückliche Kodierung. Prost!
Tags und Links c# entity-framework-4