我得到了这个例外 - “无法定义两个对象之间的关系,因为它们附加到不同的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();
}
答案 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,则无需加载相关对象。