Использование уровня доступа к данным в приложении OOP C # с использованием SQL - PullRequest
0 голосов
/ 03 сентября 2018

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

Как правило, мой слой доступа к данным имеет несколько классов, которые отображаются на таблицы базы данных, поэтому, если мне нужно отобразить список компаний, у меня будет объект «Компания» и таблица базы данных под названием «компания». Объект компании знает, как создать экземпляр из DataRow из базы данных, прочитанной с помощью запроса типа «SELECT * FROM company WHERE id = x». Поэтому, когда бы я ни отображал список компаний, я буду заполнять список объектов компании и отображать их. Если мне нужно отобразить атрибуты компании, у меня уже есть загруженные данные.

Было упомянуто, что 'select *' хмурится, и мой объектный подход может быть неэффективным, но у меня возникают проблемы при определении другого способа работы с таблицей базы данных и объектами, которые будут работать, если вы только читаете определенные поля - объект просто не будет заселен.

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

Всегда готов учиться - я работаю сам, поэтому не всегда в курсе последних технологий или методологий, поэтому любые комментарии приветствуются.

1 Ответ

0 голосов
/ 04 сентября 2018

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

В зависимости от шаблона проектирования, который вы используете в своем приложении, вы можете отделить слой доступа к данным от пользовательского интерфейса и при этом следовать этому правилу, не выбирая все столбцы, когда они не нужны. Я имею в виду, что выбор правильного шаблона дизайна для приложения может принести вам такую ​​легкость.

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

Также я прокомментирую, что очень популярные рельсы ORM ActiveRecord извлекаются из БД только при использовании данных. Возможно, вы могли бы использовать подобную логику для отслеживания не только , когда , но и , какие столбцы будут использоваться, чтобы вы могли ограничить запрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...