Почему это исключение? - Невозможно определить отношения между двумя объектами, поскольку они прикреплены к разным объектам ObjectContext. - PullRequest
0 голосов
/ 19 апреля 2010

Я получаю это исключение: «Невозможно определить отношения между двумя объектами, поскольку они привязаны к разным объектам 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 Ответ

1 голос
/ 20 апреля 2010

Попробуйте сначала добавить пользователя, затем добавить отношения.

См. http://www.code -magazine.com / article.aspx? Quickid = 0907071 & page = 4

Или не используйте User.CreateUser, где вы явно устанавливаете Id = 0, вместо этого используйте User user = new User () {Имя = Имя, Адрес = ...}

Кстати, в Entity Framework 4 вы можете установить идентификаторы внешнего ключа, что устраняет необходимость загрузки связанного объекта, если вы знаете его идентификатор.

...