如何将现有的 child 添加到新的 parent

How to add existing child to a new parent

我正在使用 entity framework。

我的模型是这样的:

群组: ID, 姓名

用户 : Id, Name , GroupID.

情况是这样的: 我有一个不属于任何组的用户 (User1)。

我创建了一个新组,想将这个用户添加到这个新组中。

我有这个代码:

Dim grp1 as new Group
grp1.name="Students"
context.Groups.Add(grp1)
context.savechanges()
usr1.GroupID=grp1.ID
context.savechanges()

此代码有效,但我调用了两次 SaveChanges。 有什么方法可以将现有的 usr1 附加到 grp1 的 child 集合,然后仅调用一次 Savechanges 吗?

谢谢!

如果 usr1 是一个被跟踪的实体,那么您可以将该组添加到用户的 Group 导航 属性 而不是尝试使用 ID。

Dim grp1 as new Group
grp1.name="Students"
usr1.Group=grp1
context.savechanges()

https://msdn.microsoft.com/en-us/library/jj713564(v=vs.113).aspx

By assigning a new object to a navigation property. The following code creates a relationship between a course and a department. If the objects are attached to the context, the course is also added to the department.Courses collection, and the corresponding foreign key property on the course object is set to the key property value of the department. course.Department = department;

https://msdn.microsoft.com/en-us/library/jj592676(v=vs.113).aspx(参见博客示例)

using (var context = new BloggingContext()) 
{ 
    // Add a new User by setting a reference from a tracked Blog 
    var blog = context.Blogs.Find(1); 
    blog.Owner = new User { UserName = "johndoe1987" }; 

    context.SaveChanges(); 
}