Entity Framework wirft diese Ausnahme:
Die Eigenschaft 'PasswordIterations' für 'BranchIdentity' konnte nicht auf einen 'System.String' Wert gesetzt werden. Sie müssen diese Eigenschaft auf einen Wert ungleich Null vom Typ 'System.Int32' festlegen.
Es wirft auf diese Zeile:
%Vor%Die Ausnahme wird nur ausgelöst, wenn eine Entität vorhanden ist, die der Abfrage entspricht. Wenn keine Übereinstimmungen vorhanden sind, wird die Ausnahme nicht ausgelöst.
Mein BranchIdentity-Modell:
%Vor%Und mein Schema (aus der SQL-Datenbank) - automatisch generiert mit Code-First-Migrationen:
%Vor% Ich habe versucht, PasswordIterations
nullbar zu machen, aber ohne Erfolg.
Nur für jeden anderen, der Probleme damit hat. Setzen Sie einen Haltepunkt in DatabaseContext
und stellen Sie sicher, dass er eine Verbindung zur richtigen Datenbank herstellt. Meine wurde von einer web.config-Datei überschrieben, die ich vergessen habe.
Klingt so, als ob Ihr Schema und die Entität nicht zusammenpassen. Sie haben Ihren Code als ersten generierten Code veröffentlicht, der sich aber möglicherweise seit der Erstellung der Tabelle geändert hat. Sehen Sie sich die Tabelle in SQL Server Manager an und überprüfen Sie den Datentyp für diese Spalte.
Ich stieß auf diesen SO-Post auf dem Weg zur Lösung eines ähnlichen Problems.
Ich habe festgestellt, dass meine gespeicherte Prozedur eine bedingte Logik hat, die entweder eine Zeichenfolge oder einen int für die erste Spalte in der Ergebnismenge zurückgeben kann.
EF schien das erste Bit des gefundenen Resultset-Codes zu übernehmen, das eine Zeichenfolge zurückgab.
Ich habe das behoben, indem der sproc einen String zurückliefert.
Ich hatte ein ähnliches Problem mit einem proc-Import in das EF-Modell und es stellte sich heraus, dass die select-Anweisung sich geändert hatte.EF sah das Ergebnisfeld als String und nicht als int, das im ursprünglichen generierten Modell definiert war. Wir mussten das Feld im proc explizit auf int setzen und alles war wieder glücklich.
in meiner realen Datenbank mein Feld war null int int aber in meinem Modell in Code mein Feld war einfach int. Ich habe es in int geändert? (Nullable Int) und jetzt funktioniert es gut.
Hatte dasselbe Problem mit View. Mit einer expliziten Umwandlung der problematischen Spalte in das View-Skript in nvarchar und einer Aktualisierung des Modells wurde es behoben
Eine Möglichkeit für einen solchen Fehler hatte ich nach dem Ändern des Datentyps von string
nach int
gesehen.
Vor dem Wechsel
%Vor%Nach Änderung
%Vor% Vor dieser Änderung erlaubt string
das Einfügen von null
-Werten in die Tabelle. Nach der Änderung können diese alten Nullen Grund für das Werfen solcher Fehler sein.
Die Frage ist gelöst, kann aber für jemand anderen nützlich sein:
stellen Sie sicher, dass Sie die richtige Verbindung zur Datenbank schreiben, und Sie können c # die Verbindungszeichenfolge für Sie generieren lassen, indem Sie:
füge einen neuen Gegenstand hinzu - & gt; Data - & gt; ADO.Net-Entity-Datamodell - & gt; -Code zuerst aus der Datenbank --- & gt; Neue Verbindung --- & gt; und spezifizieren Sie Ihre Parameter und testen Sie die Verbindung - & gt; ok - & gt; ok - & gt; bis zum Ende
Öffnen Sie web.config und Sie werden Ihre Verbindungszeichenfolge finden
überprüfen Sie auch, ob es eine Nullable-Spalte in der Datenbank gibt, implementieren Sie sie in Ihrer Klasse wie folgt:
für ex: öffentliche int? WorkedYears {erhalten; einstellen; }
ref: EFCode First-Eigenschaft Null-Problem
Vielleicht wird das jemandem helfen, der Fehler, den ich sah, war:
Die Eigenschaft 'Taller' in 'ApplicationUser' konnte nicht auf 'System.Int32' gesetzt werden. Sie müssen diese Eigenschaft auf einen Wert ungleich Null vom Typ 'System.String' festlegen.
In meinem Fall habe ich den Typ der Spalte "Größer" in meiner Datenbank-Benutzertabelle geändert, ich habe dies auch in meinem EF-Modell geändert. Aber wenn Sie Identität verwenden, sollten Sie auch Sie usermanager (IdentityModels) überprüfen, während Sie die benutzerdefinierten Spalten für Ihre Benutzertabelle definieren.
Tags und Links c# entity-framework code-first-migrations ef-migrations ef-code-first