Entity Framework: На объектный объект нельзя ссылаться несколькими экземплярами IEntityChangeTracker - PullRequest
0 голосов
/ 29 июня 2011

У меня есть таблица User с отношением «многие ко многим» к таблице «Alerts».После создания пользователя Членства я добавляю некоторую дополнительную информацию в базу данных.

MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Password, model.Email);

if (createStatus == MembershipCreateStatus.Success)   {
User user = new MidTier.Models.User();
user.FullName = model.FullName;
if (Alerts.Count() > 0)
  {
    var userAlerts = SetAlert(Alerts); // creates an IEnumerable of Alerts (from a list of int )
    foreach (var alert in userAlerts)
         {
            user.Alerts.Add(alert);                  //add each alert to the user
          }                    
   }
   userRepository.Add(user); //throwing error
   userRepository.Save();
}

Я получаю ошибку (' На объект сущности нельзя ссылаться несколькими экземплярами IEntityChangeTracker. ') при вызове метода Add.Есть много ссылок на эту ошибку в сети, даже здесь, на SO, но после прочтения всех этих комментариев и предложений, я не нашел решения или причины, по которой я получаю эту ошибку.

1 Ответ

2 голосов
/ 29 июня 2011

есть много ссылок на эту ошибку в сети, даже здесь, на SO, но после прочтения всех этих комментариев и предложений я не нашел решения или причины, по которой я получаю эту ошибку.1003 *

Если вы действительно искали, вы уже должны знать, что ошибка говорит вам, что некоторая сущность в графе объектов уже привязана к другому контексту.Из-за этого ваш пример кода в основном не связан.В ваши методы обернут действительно важный код - вероятно, SetAlerts и userRepository.Add.Если эти два метода используют внутренний контекст и не используют один и тот же экземпляр, это является причиной вашего исключения.

...