Обновление объекта в платформе Entity, имеющей отношения - PullRequest
0 голосов
/ 16 августа 2011

Я пытаюсь обновить весь объект сущности с отношениями в базе данных в рамках сущности, но безуспешно.

Я пытаюсь сделать что-то вроде этого:

var objectToUpdate = DAL.GetProduct(id);
// then I have collection of Comments related to this product.
// and I want to update th whole collection
objectToUpdate.Comments.Clear();
foreach(var newComment in comments){
  objectToUpdate.Comments.Add(newComment);
}

То, что я получаю в базе данных, - это дублирование всех комментариев к моим продуктам. Пожалуйста, предложите, как правильно обновлять связанные сущности.

Спасибо.

1 Ответ

0 голосов
/ 16 августа 2011

Если вы хотите обновить связь между objectToUpdate и коллекцией комментариев, которая уже существует в базе данных, вам необходимо прикрепить комментарии к контексту, прежде чем добавлять их в коллекцию Comments вашей objectToUpdate. В противном случае EF создаст новые строки комментариев в базе данных:

var objectToUpdate = DAL.GetProduct(id);
objectToUpdate.Comments.Clear();
foreach(var newComment in comments)
{
    context.Comments.Attach(newComment);
    objectToUpdate.Comments.Add(newComment);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...