Laden...

EF Fremdschlüssel hinzufügen bzw. ändern

Erstellt von Cokie vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.040 Views
C
Cokie Themenstarter:in
33 Beiträge seit 2013
vor 6 Jahren
EF Fremdschlüssel hinzufügen bzw. ändern

verwendetes Datenbanksystem: <MSSQL>

Nabend,

ich verstehe momentan etwas nicht.
Und zwar, ich habe 2 Entitys einmal Kunde und Kundendetails.
Die Tabelle Kunden hat den Fremdschlüssel für Kundendetails. Die Tabelle Kunden muss KEINE Kundendetails haben. Soll aber wenn es benötigen wird mit einem Eintrag aus der Kundendetails Tabelle Verknüpft werden.
Leider bekomme ich das nicht hin.
Wenn ich zb. Schreibe:

Tabelle Kunden



public int ID {get; set;}
public string Name { get; set; }
public string Vorname { get; set; }
public virtual Kundendetails kundendetails{get; set;}

Kundendetails Tabelle



public int ID {get; set;}
public string Geburtsdatum{ get; set; }
etc....



Kunde.kundendetails = 2; //2 ID aus Kundendetails
dbcontext.Entry(Kunde).State = System.Data.Entity.EntityState.Modified;
dbcontext.Save();

Bekomme ich die Fehlermeldung das die ID nicht geändert werden darf.
Wie kann ich jetzt aber der Entity(tabelle) Kunde die Kundendetails beibringen?

Vielen dank

Cokie

16.835 Beiträge seit 2008
vor 6 Jahren

ReferenzIDs werden durch EF gesetzt und dürfen nicht manuell gesetzt werden, sofern Du nicht mit Code First und Pocos arbeitest.
Die Zuweisung muss über NavigationElements also direkt auf das Objekt erfolgen.

C
Cokie Themenstarter:in
33 Beiträge seit 2013
vor 6 Jahren

Ja ich verwende Codefirst.

Ich habe das jetzt auf folgendes geändert.


Kunde.kundendetails = dbcontext.Kundendetails.First(x => x.Id == 2);
dbcontext.Entry(Kunde).State = System.Data.Entity.EntityState.Modified;
dbcontext.Save();

Die Fehlermeldung ist jetzt weg. Auch das dbcontext.Save(); läuft durch allerdings wird der wert nicht in der DB gespeichert. Wenn ich den Name z.b. ändere wird das allerdings schon gespeichert.

Oder hab ich jetzt was Total falsch verstanden?