Ich arbeite an der ASP.NET MVC-Anwendung, die EF für die Arbeit mit der Datenbank verwendet. Ich musste eine Zeichenfolgeneigenschaft ändern, die das Attribut StringLength(1000)
hatte und in der Spalte nvarchar(1000)
in der Datenbank zugeordnet wurde.Validierung des Entitätsrahmen-Validierungsfehlers nach dem Aktualisieren der Datenbank und Ändern des Modells
Ich aktualisierte die Datenbank, um nvarchar(max)
wegen neuerer Anforderungen zu verwenden, und entfernte StringLength(1000)
Attribut aus der Modellklasse.
Das Problem ist. Jedes Mal, wenn ich eine neue Entität einfügen möchte, die diese Eigenschaft mit einer Länge von mehr als 1000 hat, erhalte ich einen Validierungsfehler, der besagt, dass es nur 1000 Zeichen sein kann. Wenn es niedriger ist, funktioniert alles wie erwartet.
Das Feld muss ein String- oder Array-Typ mit einer maximalen Länge von '1000' sein.
Ich habe keine Ahnung, woher dieser Fehler kommt. Es gibt keine Trigger oder gespeicherten Prozeduren. Ich versuchte auch, Attribut MaxLength
oder StringLenght(int.maxInt)
zu verwenden, aber erhielt den Fehler. Es gibt auch keine zusätzliche Konfiguration mit Fluent API.
EDIT: Leider sieht es nicht wie dumm Problem mit nicht neu zu erstellen Lösung. Ich habe es jetzt zweimal versucht (+ Cleanup) und das Problem bleibt bestehen.
LÖSUNG: Aus irgendeinem Grund gibt es aus internen Gründen eine andere Modellklasse für dieselbe Entität im Projekt. Es war komplett ohne einzelne Attribute zu seinen Eigenschaften. Nachdem MaxLength zu dieser einzelnen Eigenschaft hinzugefügt wurde, funktioniert es.
Sind Sie sicher, dass Sie nicht nur eine alte DLL in Ihrer Ausführung Montage mit? –
Entweder Sie haben die Lösung nicht bereinigt und neu erstellt und verwenden daher eine veraltete DLL, oder Sie haben 'StringLength (1000)' an anderer Stelle definiert. – user1666620
Schauen Sie sich dieses an. Möge dies dir helfen. http://stackoverflow.com/questions/5414611/entity-framework-validation-confusion-maximum-string-length-of-128 –