2016-12-23 4 views
0

Когда вы отмечаете сущность как удаленную, устанавливая объект entityAspect, он также отмечает, что его дети также удалены. Есть ли способ удалить только родительский элемент? Или способ пройти и пометить детей как неизмененных после факта?Когда вы отмечаете сущность как удаляемую, она также отмечает его дочерние элементы, есть ли способ удалить только родительский элемент?

ответ

0

Вы не хотите связываться с навигационными свойствами - я вам сразу скажу. Мое предложение состоит в том, чтобы моделировать ваш вопрос так, как если бы вы попросили его использовать T-SQL.

В T-SQL вы можете удалить родительскую запись, но оставить ее? Нет. Я имею в виду, что ты мог, но почему? Вы только что создали осиротевшие дочерние записи в базе данных. Вы собираетесь удалить внешний ключ, но оставить данные? Какой беспорядок.

Единственная причина, по которой вы можете сопоставить родительские дочерние отношения в Бризе, - это свойства навигации, созданные на основе отношений родительского и дочернего элементов, определенных в базе данных. Если вы не можете сделать это в базе данных, вы не сможете сделать это в Бризе.

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

Извините, код не опубликован. Я давно это отказался.

0

Breeze не отмечает дочерние сущности как удаленные, если вы удаляете родителя. Мы не реализовали каскадные удаления в Breeze. У вас должен быть код в приложении, который это делает. Breeze отключает дочерние объекты от удаленного родителя, очищая свойства внешнего ключа, поэтому дочерние объекты будут в измененном состоянии. Однако вы не сможете успешно сохранить, не нарушая ограничений FK в своей БД. Вам либо нужно выполнить каскадные удаления на сервере, либо вручную удалить дочерние объекты.