Как обновить ассоциации в Entity Framework 4.1? * ОЧЕНЬ * странное поведение вне Entity Framework - PullRequest
3 голосов
/ 21 апреля 2011

Можно ли обновить связь между двумя объектами POCO в Entity Framework, напрямую ссылаясь на свойства коллекции полномочий?

Например, должно ли что-то вроде следующей работы (например, обновить список MyEntityChildren новыми значениями из хранилища)?


MyEntity.MyEntityChildren = Repository.GetChildren(/*arguments*/);
MyUnitOfWork.Commit(); //calls dBContext.SaveChanges();

public class MyEntity : ISomeInterface
{
  // public properties
  Public Virtual List MyEntityChildren {get; set;}

  public MyEntity(){
    this.MyEntityChildren = new List();
  }
}

public class Child : ISomeChildInterface
{
  Public Virtual List MyEntities {get; set;}

  public Child(){
    this.MyEntities = new List();
  }
}

public class Repository
{
  //a lot of code
  public List GetChildren(/*arguments*/)
  {
     //some LINQ expressions
  }
}

Когда мы делаем то, что описано выше, мы получаем ошибку, подобную следующей: Нарушение ограничения PRIMARY KEY 'PK_SomeRelationshipKeys'. Невозможно вставить повторяющийся ключ в объект 'dbo.SomeRelationshipTable'. Заявление было прекращено.

Интересно, что ошибка выше ТОЛЬКО возникает, когда мы бежим "на скорости". Если мы пройдемся по коду в отладчике, все будет работать нормально.

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...