Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
113 / 89 / 26
Регистрация: 11.12.2018
Сообщений: 331

ООП, модель данных и база данных

28.12.2018, 08:57. Показов 5465. Ответов 21

Студворк — интернет-сервис помощи студентам
Начитался я умных книжек, статей и прочего, в результате в голове полный «компот»
Надеюсь сможете мне растравить все на свои места.

В общем, у меня есть несколько небольших программ которые производят в основном обработку / конвертацию данных в формат понятный для одной коммерческой программы.
С недавнего времени встала необходимость использования в них базы данных. Я выбрал firebird 3, а так же сами программы решил переписать на C#. До этого немного работал с C# .net в основном получалась гремучая смесь ООП и процедурно — функционального программирования.
Допустим у нас есть некая база, по ней мы создаем модель данных, в результате у нас получается несколько классов описания модели. Так же нам необходимо создать класс так сказать посредник между провайдером данных и нашей моделью и тут у меня возникают трудности (в основном боязнь создать «божественный» класс). Класс посредника я представляю так, он должен принимать SQL команду (SQL процедуру, функцию и.д.) и ссылку на объект нашей модели, результатом выполнения должна быть заполненная модель данных или её часть. Вот не могу понять, как правильно связать dataadapter и модель, возможно dataadapter вообще лишнее звено и от него надо избавится, а взамен реализовать свой IDataReader.
За dataadapter я держусь из-за того, что уже привык к удобству работать в отключенном режиме, легкому применению изменений, к статусам и версиям строк, и т.д.. Если без него, то отключенный режим необходимо будет реализовать в модели (версии и статусы данных), а так же динамическую подгрузку данных? Но опять же с dataadapter необходимо как-то из DataTables данные перемещать в модель, циклами как-то накладно получается или есть способ лучше?

ADO.NET Entity Framewrok — не рассматриваю, да его использование почти все мои вопросы сведет на нет, но это такой жирный «монстр», что для меня его использование перебор, плюс его долгая работа с запросами, да вообще мне SQL синтаксис больше по душе.

Присматриваюсь к Dapper (как я понял он как раз реализует свой интерфейс IDataReader), возможно он и будет моим спасением, но все же хотелось бы узнать, как все таки работать с моделью данных и чистым ADO.NET.

Буду очень благодарен за любое разъяснение или примеры кода.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2018, 08:57
Ответы с готовыми решениями:

База данных, основанная на службах vs База данных SQL Server
Доброго времени суток. Делал я, значит, Data Access Layer для ASP.NET MVC проекта. Создал обычную библиотеку классов, моделей туда...

ООП модель данных, Компоновщик
Подскажите, можно ли как то сделать "красивее". существует текстовый формат. каждая строка это одна запись. У каждой записи разный...

База данных и ЕР-модель
Доброго времени суток. Сразу скажу, я в этом деле ни-ни. Но вот сюда пишу, чтобы помоги разобраться. Начну с того что я составил...

21
Эксперт .NET
 Аватар для Usaga
14812 / 9585 / 1368
Регистрация: 21.01.2016
Сообщений: 36,101
29.12.2018, 17:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Cupko Посмотреть сообщение
А если этот метод с точки зрения бизнес-логики не нужен? Получается явная проблема дизайна.
Нет, не получается) Если метод не нужен, то он просто не заводится) И всё.
0
113 / 89 / 26
Регистрация: 11.12.2018
Сообщений: 331
09.01.2019, 07:44  [ТС]

Не по теме:

Всех с прошедшими праздниками и наступившим новым годом!



Цитата Сообщение от Cupko Посмотреть сообщение
Если речь идет о Database-centric архитектуре
Да, именно про это (так сказать "старая школа"). Попытался приделать Repository, Mapper, в результате получается, как пятая нога собаке
В общем, сделать можно, но нужно ли? Получается, что мы смешаем всё в кучу.

Сейчас переписываю другую программу, вот в ней изначально я выбрал "правильный" подход, а именно изначально проектирование базы и приложения с учетом схемы разделения данных Model-View-Controller и трех уровней архитектуры (решил опробовать .NET Entity Framewrok, если я правильно понял он реализует в себе ранее обсуждаемые паттерны).

Не по теме:

Но главное помогли разобраться со всем этим "зоопарком" :wall:

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2019, 07:44

Простая База Данных в txt файле (ООП)
Приветствую. Помогите, пожалуйста, разобраться с подключением базы данных в форме отдельного txt файла к проекту, с использованием ООП. ...

"База данных ГАИ: гос.номер АВТОМОБИЛЯ, марка, модель, Фамилия И.О. владельца, год выпуска
а как сделать эту программу, чтобы считывала данные с файла и мы задавали условие, вывести все машины например 2000 года, или вывести...

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

Из базы данных сгенерировал модель. Как теперь через нее обращаться к базе данных
Из базы данных сгенерировал модель. Как теперь через нее обращаться к базе данных?

Не открывается база данных Access , пишет неразпознаваемый формат базы данных
Не открывается база данных Access , пишет неразпознаваемый формат базы данных,что делать


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru