Если вы используете MS SQL Server:
Возможно, вам следует использовать ON DELETE CASCADE
для внешнего ключа.
ALTER TABLE Contact
ADD CONSTRAINT FK_PersonContact FOREIGN KEY (PersonId)
REFERENCES Person(PersonId) ON DELETE CASCADE
Это обеспечит удаление строки контакта при удалении строки человека. Это ограничение, которое всегда применяется базой данных.
Вы также можете установить это в SQL Management Studio в диалоговом окне «Отношения по внешнему ключу», в разделе «Спецификация INSERT и UPDATE», «Удалить правило» -> «Каскад».
Просто убедитесь, что если где-то вы кэшируете свои Contact
объекты на бизнес-уровне, вы также обновляете кеш.