2012-05-18 4 views
1

Сначала я использую код Ef 4 и имею родительскую таблицу с дочерним элементомКаков правильный способ обновления родительских/дочерних объектов в EF?

Когда я обновляю родительский элемент, я замечаю, что ребенок не обновляется, а новые записи создаются (старые не удаляются).

Моего метод обновление выглядит так:

IEFRepository<Parent> repo = new EFRepository<Parent>(context); 
var parent = repo.GetSingle(m => m.parentId.Equals(updatedParent.parentId)); 

parent.Child = updatedParent.Child; //this is creating a new record in the db, not overwriting the existing 

repo.Update(parent); 

Если я вспыхиваю дочерние свойства в методе обновления, как показано ниже решает дубликат проблемы входа, но создает другие проблемы в других странах (в первую очередь с проверкой нулевых записей) ,

parent.Child.property = updatedParent.Child.property; 

Я также попытался создания UpdateChild(), и вызов, что от UpdateParent(), но получил по существу тот же результат, как вспыхивают отдельные дочерние свойства

Есть правильный способ управлять этим поведением и заставить EF перезаписать дочерний объект вместо создания нового?

+0

Можете ли вы дать более подробную информацию о том, какие именно изменения вы пытаетесь сделать? Из этого описания трудно следовать, по крайней мере, для меня. :) –

ответ

0

У вас есть список детей в контексте и remove старый ребенок из вашего контекста, когда он вам больше не нужен.

Смежные вопросы