我有以下代码(带有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变量是实体类型,并且已分配给其他上下文,则您会遇到此问题。

我不认为问题出在您的ProjectProjectUser对象之间,仅是因为您的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/

10-12 14:30