Привет Я использую самообучающиеся объекты EF 4. У меня есть три таблицы (вопросник, раздел и страница) следующим образом:Проблема с кольцевой ссылкой EF4 при удалении
Questionnaire
Id
Title
WhenClosedShowPageId
Section
Id
QuestionnaireId
Page
Id
SectionId
Так что в модели EF вопросник имеет разделы и раздел содержит страницы. WhenClosedShowPageId - это значение с нулевым значением int, которое ссылается на страницу, показывающую, когда вопросник закрыт. Все ссылки имеют ассоциации для поддержания ссылочной целостности.
Проблема возникает, когда я отмечаю все объекты как удаленные и пытаюсь сохранить. Если WhenClosedShowPageId было null, когда я извлек данные, тогда удаление будет прекрасным. Если значение параметра WhenClosedShowPageId установлено равным значению, EF не сможет выработать порядок удаления. Это понятно. Однако, если я установил WhenClosedShowPageId равным null, пометьте сущности как удаленные и сохраненные, то же самое произойдет. Я бы ожидал, что EF сначала сгенерирует оператор обновления, чтобы установить WhenClosedShowPageId в значение null в базе данных, а затем для удаления объектов.
Единственный способ, который я вижу, чтобы обойти эту проблему, - это сделать два независимых сейва самостоятельно, первым установить значение WhenClosedShowPageId равным null, а второе - удалить объекты. Это очень многоуровневое приложение, хотя я не хочу создавать специальный случай именно для этого.
Есть ли способ обойти это?
Даррен