I have this code (VS2010 ASP.NET MVC 3 with EF 4):
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);
It generates the following error (on the "project.ProjectUsers.Add(projectUser)" line)
"The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects."
I don't understand why cause, as far as I know, both objects are using the same ObjectContext (but I'm new to EF).
What am I doing wrong? Thanks for your help!
If your user
variable is an entity type, and it is assigned to a different context, then you'd experience this problem.
I don't think the problem is between your Project
and ProjectUser
objects, only because your ProjectUser
object isn't explicitly assigned to a context - I think by default it will go to the same context as the Project
when you go to save it.
I believe you get this error only when you truly have two contexts and try to join them together.
Just list you did for Project, you need to add the ProjectUser to the context. So mimic the line:
context.AddObject(project);
And instead make it
context.AddObject(projectUser);
And do that before you add it to the collection on project.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With