Добрый день, подскажите плиз верное решение.
Сделал в 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. Или ее надо очищать вручную?
Здравствуйте, Аноним, Вы писали:
А>Добрый день, подскажите плиз верное решение.
А>Сделал в 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. Или ее надо очищать вручную?
Надо вручную. Причём, если у вас предполагается работа нескольких пользователей с БД, то надо быть весьма аккуратным.