2017-02-02 4 views
0

Ich habe einen Main_User Typ und einen Sub_user Typ.Entity Framework Eltern und Kind Speichern

Unterbenutzer hat eine Fremdschlüsselbeziehung main_user_UID.

Ich kann nicht für das Leben von mir bekommen sie zur gleichen Zeit einfügen, weil die Main_User UID nicht vorhanden ist, wenn ich versuche, den Sub_User Typ zu speichern.

public class Main_User 
{ 
[key] 
public int Main_User_UID {get;set;} 
public virtual ICollection<Sub_User> SubUsers{get;set;} 
//others 
} 

Dann ist mein Sub Benutzer

public class Sub_User 
{ 
[key] 
public int Sub_User_UID {get;set;} 
public int Main_User_UID {get;set;} 
public virtual Main_User MainUser{get;set;} 
//others 
} 

And My Context-Mappings für das.

modelBuilder.Entity<Main_User>() 
      .HasMany(c => c.SubUsers) 
      .WithRequired(c => c.Main_User) 
      .HasForeignKey(c => c.Main_User_UID) 

Ich habe ein paar andere Möglichkeiten versucht, die ich gefunden habe, aber egal, was es wird nicht das Sub_User => Main_User_UID Fremdschlüsselfeld auf Savechanges füllen, wenn ich ein Sub_User den Main_User.SubUsers hinzuzufügen.

Antwort

0

Ich vermute, dass Sie versuchen, Ihre Entity-Beziehungen direkt durch ihre Fremdschlüssel zu verwalten. Versuchen Sie stattdessen Folgendes:

var mainUser = new Main_User{ //field values here } 
mainUser.Sub_Users.Add(new Sub_User{ //field values here }); 
context.Add(mainUser); 
context.SaveChanges(); 
+0

Das ist fast genau mein Code. Es sagt, dass der sub_user.main_user_uid es bricht, weil es nicht gefüllt wird ... Obwohl ich dachte, dass ich Entity-Framework automatisch sein würde, da es als Fremdschlüssel aufgeführt ist – Dylan

+0

Ich bin dumm. Ich befestigte es und fügte es dann hinzu. Und anscheinend war das das Problem. – Dylan

+0

Ich bin froh zu hören, dass es funktioniert! – tonythewest

Verwandte Themen