我有以下代码(带有EF 4的VS2010 ASP.NET MVC 3):
Project project = new Project();
project.Number = number;
project.Name = name;
context.AddObject(project);
ProjectUser projectUser = new ProjectUser();
projectUser.User = user;
projectUser.Status = 1;
project.ProjectUsers.Add(projectUser);
context.SaveChanges(true);
它将生成以下错误(在“project.ProjectUsers.Add(projectUser)”行上)
“无法定义两个对象之间的关系,因为它们被附加到不同的ObjectContext对象。”
据我所知,我不明白为什么会导致两个对象都使用相同的ObjectContext(但是我是EF的新手)。
我究竟做错了什么?
谢谢你的帮助!
最佳答案
如果user
变量是实体类型,并且已分配给其他上下文,则您会遇到此问题。
我不认为问题出在您的Project
和ProjectUser
对象之间,仅是因为您的ProjectUser
对象未明确分配给上下文-我认为默认情况下,保存时它将与Project
放在相同的上下文中。
我相信只有当您确实有两个上下文并尝试将它们合并在一起时,您才会出现此错误。
关于c# - Entity Framework : "The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects.",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6699897/