Как объединить каскадные обновления / удаления между SQL Server и NHibernate? - PullRequest
1 голос
/ 03 октября 2008

Я пишу приложение с ручной моделью домена (классы) и ручной моделью данных (таблицы / отношения) и позволяю NHibernate позаботиться о сопоставлении.

Лучше ли указывать базе данных выполнять каскадные обновления или удаления или указывать NHibernate сделать это (cascade = "all-delete-orphan")? Могут ли они быть настроены на это одновременно?

Ответы [ 2 ]

1 голос
/ 03 октября 2008

Я предпочитаю, чтобы NHibernate сделал это для меня. Его проще настроить, и он хорошо работает.

каскад: all-delete-orphan - это то, что вы не смогли бы сделать в SQL без триггера, поэтому есть и другая причина

0 голосов
/ 18 октября 2008

Могут ли они быть настроены на это одновременно?

Я думаю, что если вы попытаетесь, вы можете получить жалобу NHibernate, так как большинство его операций проверяет количество строк, чтобы убедиться, что ожидаемое количество строк было вставлено / обновлено / удалено.

Как говорит Бен, заставь NHibernate сделать это.

В конечном счете, NHibernate (и ORM в целом) позволяют рассматривать базу данных как механизм хранения и поиска. Вы по-прежнему хотите создавать ограничения, первичные ключи, внешние ключи и индексы, но ORM должен в любом случае подчиняться этим правилам. Как и в случае любого сценария доступа к данным, если вы создаете сложные ограничения в базе данных, помните, что эти правила придется дублировать в вашем приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...