entity framework "many to many" удаление
От: Аноним  
Дата: 18.07.10 11:11
Оценка:
Добрый день, подскажите плиз верное решение.
Сделал в EF модель есть связь parent — child "many to many" (в БД — 3 таблицы parentTable, childTable, parent2childTable). Создают paren, child1, child2, child3, связи... все работает. Теперь пробую удалить у parent всех его child. Использую EF механизм

parent.Childs.Remove(child1);
parent.Childs.Remove(child2);
parent.Childs.Remove(child3);

смотрю в бд. в parent2childTable записей нет, а в childTable записи остались, хотя никто на них не ссылается. Добавил я снова к паренту child1, рассчитывая на то, что EF создаст одну запись в таблице parent2childTable. Но нет EF создал вторую запись child1 в таблице childTable и соотв. запись в таблице parent2childTable.

Как надо было правильно удалять child объекты, чтобы очистилась таблица childTable. Или ее надо очищать вручную?
Re: entity framework "many to many" удаление
От: _FRED_ Черногория
Дата: 18.07.10 11:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день, подскажите плиз верное решение.

А>Сделал в EF модель есть связь parent — child "many to many" (в БД — 3 таблицы parentTable, childTable, parent2childTable). Создают paren, child1, child2, child3, связи... все работает. Теперь пробую удалить у parent всех его child. Использую EF механизм
А>parent.Childs.Remove(child1); 
А>parent.Childs.Remove(child2);
А>parent.Childs.Remove(child3);

А>смотрю в бд. в parent2childTable записей нет, а в childTable записи остались, хотя никто на них не ссылается.

И это правильно. Если по логике вашей программы дети, на которых никто не ссылается, должны быть удалены, то эту логику вам необходимо написать самостоятельно.

А>Добавил я снова к паренту child1, рассчитывая на то, что EF создаст одну запись в таблице parent2childTable. Но нет EF создал вторую запись child1 в таблице childTable и соотв. запись в таблице parent2childTable.


Как добавляете "к паренту child1"?

А>Как надо было правильно удалять child объекты, чтобы очистилась таблица childTable. Или ее надо очищать вручную?


Надо вручную. Причём, если у вас предполагается работа нескольких пользователей с БД, то надо быть весьма аккуратным.
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.