У меня есть несколько таблиц, которые делают что-то похожее, используя MS SQL Server 2008.
У меня установлены внешние ключи для каскада при удалении. Таким образом, в ситуации, когда вы находитесь в таблице, я бы удалил область, и как только команда удаления была отправлена на сервер, она автоматически перешла бы в таблицу объединения. Триггер OnDelete можно использовать в таблице соединений, чтобы обеспечить безопасное удаление документов после удаления их записи.
LINQ никогда не жаловался, но для безопасности у меня всегда была функция «Очистка» в моих классах LINQ, которая очищает отношения внешнего ключа одного объекта, если они были перечислены. Хотя это в основном для редактируемых объектов, а не для удаления.
Partial Class MyLINQObject
Public Sub ScrubRelationships()
_RelatedTableObjects = New EntityRef(Of RelatedTableObject)
End Sub
End Class
Надеюсь, это поможет!