Можно ли обновить связь между двумя объектами 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'.
Заявление было прекращено.
Интересно, что ошибка выше ТОЛЬКО возникает, когда мы бежим "на скорости". Если мы пройдемся по коду в отладчике, все будет работать нормально.
Есть идеи?