Есть ли ошибки при использовании Castle ActiveRecord / NHibernate с WCF? - PullRequest
0 голосов
/ 05 марта 2009

Такая гибкость, которую Activerecord придает нашему дизайну БД, мы рассматриваем его для нашего DAL и строим модель на его основе. Помимо всего этого, мы будем создавать сервис WCF. При использовании Castle Activerecord на основе NHibernate возникают какие-либо проблемы или проблемы с компатом? Особенно, когда речь идет о DataContractSerializer, который использует WCF. Поскольку ActiveRecord не будет использовать IQueryable, это слишком много, чтобы пропустить ??

Ответы [ 2 ]

1 голос
/ 06 марта 2009

Хотя это не относится к WCF и Castle Activerecord, я предлагаю предупреждение.

Убедитесь, что на слое персистентности не определено никаких УДАЛЕНИЙ КАСКАДИНГА. Позвольте ActiveRecord обрабатывать те, что для вас, в противном случае вы столкнетесь с досадными ошибками одного (получено 0 ожидается 1) типа вещей, которые не очень понятны.

Кроме того, если вам нужно выполнять частое массовое удаление, вы можете быть осторожны при использовании ActiveRecord вообще, так как реализация Castle не поддерживает массовое удаление, а вместо этого требует дорогостоящего цикла для каждого элемента, который нужно удалить, и отдельного удаления в происходят.

1 голос
/ 06 марта 2009

Сериализованный объект = отдельный объект. И как только вы отправляете объект по проводам через WCF, это то, что у вас есть.

Таким образом, большая проблема заключается в том, что вы будете иметь дело с тем, когда при использовании NHibernate с WCF используются отдельные объекты, что заставляет вас писать свой код немного по-другому. Вы теряете кеширующие способности NHibernate и ленивые функции загрузки. Вы должны предварительно загрузить свои агрегаты, прежде чем отправлять их по проводам.

Конечно, это все спорно, если вы используете передачу данных объектов вместо этого, но так как вы упомянули ActiveRecord я предполагаю, что не был план.

Я могу быть далеко от базы здесь. Надеюсь, гуру ActiveRecord может дать больше деталей.

...