У меня есть существующий веб-сайт (на основе .net 1.1), который вызывает веб-сервисы (на основе .net 1.1) для доступа к данным. Веб-сервисы вызывают хранимые процедуры для запуска SQL.
У меня есть родительский объект (буква) с несколькими дочерними объектами (комментариями) (5-25), и мне нужно обновить один столбец для каждого из дочерних объектов до нового значения - установить флажок для комментариев, чтобы например, установите статус утвержденного - это свойство находится в комментариях, а не в письме, так как дальнейшие неутвержденные комментарии могут быть добавлены позже.
Обычный подход, который мы выберем, заключается в создании нового веб-метода, например ApproveComments и передать в letterID, чтобы установить все комментарии в настоящее время на письмо для одобренного. Затем вызывается хранимая процедура ApproveCommentsOnLetter для ОБНОВЛЕНИЯ ApprovedFlag до True, где letterID = переданный параметр.
Этот подход означает, что со временем мы имеем тенденцию заканчивать множеством очень специфических вызовов веб-сервиса и очень специфических хранимых процедур, так как новые функции добавляются в определенную область системы. Это работает нормально, но означает, что мы всегда пишем новый код, и я думаю о том, как мы могли бы действовать по-другому. Я не могу изменить версию .net, поскольку на данный момент это небольшое изменение, но я обдумываю, как по-другому подойти к этому вопросу, поскольку мы продолжаем обновлять это приложение с течением времени.
У меня была идея создать более общий веб-метод UpdateComments, который будет использоваться для всех обновлений комментариев. Я бы передал в него массив объектов Comments, которые бы имели свойства get / set. В этом случае я бы перебрал и обновил для каждого свойства свойство Status до True, прежде чем отправлять их в веб-метод, но в будущем другие столбцы можно будет установить аналогичным образом, избегая создания новых веб-методов.
Затем я немного спотыкаюсь с разделом базы данных. Такое ощущение, что следующим шагом будет наличие хранимой процедуры UpdateComment. Затем мне придется вызывать это несколько раз, по одному для каждого комментария, в свою очередь, для обновления. Я обеспокоен тем, что несколько повторных обращений к базе данных для этих вызовов (в настоящее время 5-25) не очень эффективны и просто обычно кажутся плохими . Хотя другой подход, который я вижу, заключается в том, чтобы эти «массовые» обновления вернулись к наличию определенного веб-метода и хранимой процедуры, предназначенной для одновременного обновления данного свойства, но затем я вернулся, где я начал с создания нового веб-методы и хранимые процедуры для каждой новой функциональности, которую мы добавляем в интерфейс.
Буду признателен за мысли о том, как к этому подойти - я не могу пойти и добавить ORM / новую версию .net / и т. Д., Поэтому нужно подумать о том, как лучше всего подойти к этому в рамках технологий Я уже использую.