Ваш веб-сервис и слои хранимых процедур уже выполняют большую часть работы, которую выполнял бы ORM низкого уровня: доступ к базе данных строго типизированным способом. Похоже, вы получаете DataTables обратно из веб-службы, и вы хотите инкапсулировать эти DataTables в классы.
Вы получите очень небольшую помощь от возможностей "автоматического создания", которые предоставляет большинство продуктов ORM, поскольку они обычно ориентированы на создание классов непосредственно из источника SQL. С другой стороны, если ваши веб-сервисы разрешают обнаружение возвращаемых столбцов, создание таких классов-оболочек из традиционных методов генерации кода - не сложный проект. Если эти сгенерированные классы основаны на базовых типах вашего ORM, вы можете использовать остальную часть инфраструктуры (коллекции сущностей, единицы работы и т. Д.).
Это довольно сильно отличается от большинства архитектур, которые я видел. Я видел DataStore-> ORM-> Business Logic-> Web Service ==> Потребитель использовал совсем немного. Это позволяет легко писать бизнес-логику в хранилище данных, предоставляя веб-сервисы, которые решают, как использовать бизнес-логику. Потребитель (приложение конечного пользователя, либо настольный компьютер, либо веб-презентация) в основном отвечает за презентацию (как и должно быть в большинстве случаев).
С другой стороны (если я неправильно прочитал), кажется, вас интересует DataStore-> Sproc-> WebServices ===> ORM-> Business Logic-> Consumer. Это не то, что я видел часто. Я думаю, что это работает против вашего принятия ORM так, как вы думаете.
Я что-то упустил или большая часть бизнес-логики действительно выполняется на клиенте?