EF. POCO. Сохранение сущьности в базе.
От: Аноним  
Дата: 18.10.10 10:06
Оценка:
Есть такие сущьности как Person, Title, их генерированные псевдо-классы выглядят примерно так:

Person {
  Guid ID {get ;set; }
  String Name { get; set; }
  Guid TitleID { get; set; }
  Title Title { get; set; }  
}

Title {
  Guid ID { get; set; } 
  String TitleName { get; set; } 
}


Есть объект Person (новая или изменяемая — не известно), у него установлен объект Titel (в базе данных присутствует или является null).
Эти объекты отаттачены от контекста.
Нужно выполнить сохранение. Как не кручу, не выходит у меня, выполнить эту операция:
Ошибка повреждения PRIMARY KEY 'aaaaaTitle_PK'. Двойной ключ не может быть добавлен в dbo.Title-oбъект.


Для сохранения объектов есть метод SavePerson(Person p). В нем создается свеженький контекст ctx. Затем пытаюсь добавить объект или перенять его новые значения:


Person pp = ctx.PersonenSet.SingleOrDefault(x => x.ID == p.ID);
                if (pp == null)
                    ctx.PersonenSet.AddObject(p); // new 
else 
                    ctx.PersonenSet.ApplyCurrentValues(p); // edit


Если просто выполнить ctx.SaveChanges(), вываливается выше описанная ошибка.
Как мне задать правильно title? Не могу понять что делать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.