Вопрос

Я проектирую веб -приложение в C#, которое в основном общается с базой данных. Я создал DTO для каждой таблицы в базе данных. Теперь для каждой таблицы существует пользовательский класс репозитория таблицы, который выполняет все сохранение и извлечение, относящиеся к этой конкретной таблице, и я использую для этого хранимые процедуры.

В настоящее время проблема заключается в том, что некоторые хранимые процедуры фактически выполнят внутреннюю операцию соединения, а затем отправят пользовательский вывод, который представляет собой комбинацию из 2 таблиц.

Поэтому я не могу хранить данные в одном объекте DTO.

Если есть какие -либо основные операции, которые в основном выполняются на одной таблице, то все в порядке. Я могу вызвать объект Table DTO для как вставки, так и для извлечения из базы данных. Но когда соединения находятся в сохраненных процедурах, и во время определенных ситуаций мы обновляем несколько таблиц.

Как мы должны разработать приложение?

Пожалуйста помоги

Спасибо

Это было полезно?

Решение

Похоже, вы, возможно, захотите переосмыслить наличие DTO, который напрямую соответствует каждой таблице в базе данных.

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

Нет ничего плохого (на самом деле это часто важно) иметь DTO, ссылающуюся на другие DTO, поэтому, например, у вас может быть класс клиента, который указывает на список адресных классов.

Если что -то станет более сложным, вы, скорее всего, захотите рассмотреть вопрос о внедрении другого слоя на этом этапе с истинными «доменными объектами», которые отображают ваш DTO, который от звука его является «объектами настойчивости».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top