Objekt EntityKey / Fremdschlüsselproblem

7

Als Ergebnis eines Formularposts versuche ich, einen neuen Markenrekord zu speichern. Aus meiner Sicht ist Gender eine Dropdown-Liste, die einen Integer zurückgibt, der aus ViewData ("gender") besteht.

Ich habe meinen Link wie folgt eingerichtet:

%Vor%

Was zu dem folgenden Fehler führt.

%Vor%

Könnte mir jemand die Parameter in einfachem Englisch erklären. Ich habe auch DB.Gender als ersten Parameter aber keine Freude ausprobiert.

    
Paul 18.06.2009, 08:41
quelle

3 Antworten

18

Erstellen Sie anstelle eines EntityKey ein Stub-Gender-Objekt (Entschuldigung, ich bin kein VB-Typ, also in C #):

%Vor%

Dann fügen Sie das Geschlecht an die entsprechende EntitySet an (der Name der Eigenschaft in DB , von dem Sie Gender-Entitäten erhalten, ist die folgende Zeichenfolge):

%Vor%

Dies versetzt die Datenbank in den Zustand, in dem sich das Geschlecht befindet, in den ObjectContext im unveränderten Zustand ohne eine Datenbankabfrage. Jetzt können Sie eine Beziehung wie üblich erstellen

%Vor%

Das ist alles, was dazu gehört. Keine Notwendigkeit, sich mit EntityKeys

herumzuärgern

Hoffe das hilft

Alex

    
Alex James 18.06.2009, 16:29
quelle
1

Was Sie brauchen, ist eine Instanz von Brand und Gender und dann setzen Sie Brand.Gender auf die Instanz des Gender. Dann können Sie ohne Probleme speichern.

    
Jonathan van de Veen 18.06.2009 09:37
quelle
0

Ok, was ich mir ausgedacht habe, anstatt updateModel zu benutzen. Es scheint problematisch / potentiell ein Sicherheitsrisiko zu sein, mit möglicherweise zusätzlichen Feldern in der Post hinzugefügt werden. Eine neue Instanz von Gender kann über trygetObjectByKey instanziiert werden. Dies funktioniert soweit. Alle weiteren Vorschläge, wie UpdateModel das Gender-Eigenschaftsobjekt aktualisieren kann, werden geschätzt.

%Vor%     
Paul 18.06.2009 11:49
quelle