Проблема:
- База данных, управляемая администратором базы данных, с мандатом только для хранимых процедур.
- Ожидание, что домен будет определен в POCO.
Поэтому я решил, что мне нужен ORM, разработанный для хранимых процедур и / или устаревших баз данных.
В идеале ORM должен позволять мне декларативно (или свободно) отображать объекты домена в хранимые процедуры CRUD.
Некоторые выводы на данный момент:
- NHibernate будет работать, если только я смогу контролировать запросы, генерируемые для отложенной загрузки.
- iBATIS.NET будет работать отлично, но я не могу найти примеров:
- отслеживание состояния объекта (новый / обновленный / удаленный / и т. Д.)
- транзакции родительского / дочернего принятия (если родитель обновлен, обновите также все грязные дочерние объекты).
- Внутренний разработанный ORM, который работает с нашими соглашениями о базе данных, является опцией, и мы уже начали с этого. Но я хочу убедиться, что у нас нет другого выбора.
Non-опции:
- SubSonic выполняет перенос сохраненных процедур, но не отображает между процессами и объектами. Я мог бы реализовать какой-нибудь маппер, если бы он пришел к нему, но есть и другие факторы, которые также влияют на SubSonic, такие как отсутствие поддержки VS2005 (или SharpDevelop) и смешивание доступа к данным с объектами домена.
- Удаление SProcs не вариант. Целостность данных - ОГРОМНАЯ забота администраторов баз данных и высших должностных лиц, и они чувствуют себя в большей безопасности с SProcs. Это не мое место, чтобы убедить их в обратном.
Кто-нибудь знает о ORM, который соответствует моим потребностям, или о способе преодоления ограничений в ORM, который не соответствует моим потребностям, 100% ?
Любые предложения приветствуются!