Сначала я начал использовать Entity Framework 4.1 с кодом.Я действительно люблю это по сравнению с предыдущими методами ado.net.
У меня очень простая ситуация, когда в базе данных есть таблица отдела и таблица сотрудника.Каждый сотрудник принадлежит отделу, а в отделе много сотрудников.Бизнес-правило: при удалении отдела, если есть какие-либо связанные сотрудники, оно не должно разрешать удаление.Я могу написать небольшой метод перед удалением и проверить зависимость.Однако, поскольку у меня очень сложный проект с таблицами более 300 дБ, я ненавижу это делать.Отношения часто меняются, что приводит к большому количеству изменений во всех методах удаления проекта.
В ado.net, в подобных ситуациях, я использовал для анализа выданного исключения и получения имени конкретного Foreignключевое ограничение, которое было нарушено.Основываясь на названии нарушенного ограничения FK, я использовал для сообщения клиенту соответствующее сообщение об ошибке.Эта техника хорошо работала даже в довольно большом проекте с более чем 150 таблицами.
Как мне сделать подобное в EF?Как узнать, какой FK нарушен при вызове SaveChanges ()?