C# 实体框架父级和子级保存

C# 实体框架父级和子级保存,c#,entity-framework,C#,Entity Framework,我有一个主用户类型和一个次用户类型 子用户具有主用户UID外键关系 我无法让它们同时插入,因为在我尝试保存Sub_用户类型时,主用户UID不存在 public class Main_User { [key] public int Main_User_UID {get;set;} public virtual ICollection<Sub_User> SubUsers{get;set;} //others } 以及我的上下文映射 modelBuilder.Entity<

我有一个主用户类型和一个次用户类型

子用户具有主用户UID外键关系

我无法让它们同时插入,因为在我尝试保存Sub_用户类型时,主用户UID不存在

public class Main_User
{
 [key]
 public int Main_User_UID {get;set;}
 public virtual ICollection<Sub_User> SubUsers{get;set;}
 //others
}
以及我的上下文映射

modelBuilder.Entity<Main_User>()
            .HasMany(c => c.SubUsers)
            .WithRequired(c => c.Main_User)
            .HasForeignKey(c => c.Main_User_UID)
modelBuilder.Entity()
.HasMany(c=>c.SubUsers)
.WithRequired(c=>c.Main\u用户)
.HasForeignKey(c=>c.Main\u User\u UID)

我尝试了其他几种方法,但不管怎样,当我将Sub_用户添加到Main_User.SubUsers时,它都不会填充SaveChanges上的Sub_User=>Main_User\UID外键字段。

我怀疑您正试图通过外键直接管理实体关系。请尝试以下方法:

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

这几乎就是我的代码。它说sub_user.main_user_uid正在破坏它,因为它没有被填充…尽管我认为我会自动成为实体框架,因为它被列为外部keyIm dumb。我在附加它,然后添加它。显然这就是问题所在。
var mainUser = new Main_User{ //field values here }
mainUser.Sub_Users.Add(new Sub_User{ //field values here });
context.Add(mainUser);
context.SaveChanges();