Aus irgendeinem Grund bekomme ich den folgenden Fehler bei der Anweisung db.SaveChanges();
:
Controller-Code:
%Vor%Ich habe den Debugger durchlaufen und bestätigt, dass die Benutzer-ID ausgefüllt wird.
Aktualisierung:
Ich habe versucht, db.AddToPortfolios(portfolio);
auf db.Portfolios.AddObject(portfolio);
zu ändern, aber es hat immer noch das gleiche Problem.
Portfolios
ist ein ObjectSet
, sollte ich die Attach()
Methode verwenden?
Ich kenne diese Ausnahme nur aus einer Situation, nämlich: UserId
ist keine Identitätsspalte in Ihrer Datenbank, aber im EF-Modell wird die entsprechende Eigenschaft als solche gekennzeichnet - was bedeutet, dass sie entweder explizit mit DatabaseGeneratedOption.Identity
verknüpft wird. oder implizit durch Konventionen.
Das Problem ist, dass EF in diesem Fall den Eigenschaftswert nicht an den DB sendet (egal, ob er gesetzt ist oder nicht), weil er davon ausgeht, dass die Datenbank die Arbeit zum Erstellen eines Spaltenwerts erledigt. Aber das DB nicht, daher die Ausnahme.
Nur eine Vermutung.
Bearbeiten:
Um das Problem zu lösen, müssen Sie UserId
mit DatabaseGeneratedOption.None
kennzeichnen.
Tags und Links asp.net-mvc-3 entity-framework-4 objectcontext objectset