2017-02-02 60 views
0

我有一個Main_User類型和一個Sub_user類型。實體框架父級和子級保存

子用戶具有main_user_UID外鍵關係。

我不能爲我的生活讓他們同時插入,因爲當我嘗試保存Sub_User類型時,Main_User UID不存在。

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

然後我的子用戶

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 
} 

而且我對這種情況下的映射。

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

我試過,我發現一對夫婦的其他方式,但無論怎樣它不會填補的SaveChanges的Sub_User => Main_User_UID外鍵字段,當我加入Sub_User到Main_User.SubUsers。

回答

0

我懷疑你試圖通過外鍵直接管理你的實體關係。嘗試這樣的代替:

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

這幾乎就是我的代碼。它說,sub_user.main_user_uid正在打破它,因爲它沒有被填充......儘管我認爲我會自動實體框架,因爲它被列爲外鍵 – Dylan

+0

Im dumb。我附加它然後添加它。顯然這是問題所在。 – Dylan

+0

我很高興聽到你有工作! – tonythewest