为什么会出现此异常? - 无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象

时间:2010-04-19 10:27:50

标签: entity-framework entity ado

我得到了这个例外 - “无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象。”

我有用户表和国家/地区表。 countryid在用户表中引用。

当我尝试在用户表中添加条目时,我收到了上述异常。

这是我的代码 -

using (MyContext _db = new MyContext ())    
{                
    User user = User .CreateUser(0, Name, address, city, 0, 0, email, zip); 

    Country country = _db.Country.Where("it.Id=@Id", new ObjectParameter("Id",countryId)).First(); 

    user.Country = country;

    State state = _db.State.Where("it.Id=@Id", new ObjectParameter("Id", stateId)).First(); 

    user.State = state;

    _db.AddToUser(user );//Here I am getting that Exception

    _db.SaveChanges();    
}

1 个答案:

答案 0 :(得分:1)

首先尝试添加用户,然后添加关系。

请参阅http://www.code-magazine.com/article.aspx?quickid=0907071&page=4

或者,不要在显式设置Id = 0的地方使用User.CreateUser,而是使用User user = new User(){Name = Name,Address = ...}

BTW,使用Entity Framework 4,您可以直接设置外键ID,如果您知道其ID,则无需加载相关对象。