Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 0
Регистрация: 03.11.2018
Сообщений: 42

Репозиторий через ADO на ASP.NET

03.01.2019, 13:16. Показов 2587. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Подскажите пожалуйста. Реализую репозиторий доступа к бд через адо, без использования ЕФ.
В самом асп проекте использую Онион архитектуру. так вот встал вопрос как на нижележащем уровнем подключиться к бд, ведь все для подключения, включая веб конфиг находится на самом верху. Буду очень благодарен за любые наводки. А то в гугле, по всей видимости, все только ЕФ используют...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.01.2019, 13:16
Ответы с готовыми решениями:

Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net
Всем привет! Нужно написать клиент-серверное приложение на основе Microsoft Sql Server 2005 Express Edition. Некое клиент-серверное...

Обращение к БД Oracle через ADO.Net
строку подключения напиши и проверь права на директорию где лежит ociw32.dll

Подключение к Oracle через ado.net по выбранному listener
1) есть 2 лисенера на Оракл сервере. клиентская часть проги(на .NET) должна подключать по второму лисенеру (в протоколе TCP/IP,...

3
Эксперт .NET
 Аватар для Usaga
14292 / 9377 / 1352
Регистрация: 21.01.2016
Сообщений: 35,337
03.01.2019, 18:19
privetprivet, какая разница, EF или голый ADO.NET? Смысл архитектурного подхода вообще никак не меняется. EF тоже строку подключения требует.

Цитата Сообщение от privetprivet Посмотреть сообщение
использую Онион архитектуру. так вот встал вопрос как на нижележащем уровнем подключиться к бд, ведь все для подключения, включая веб конфиг находится на самом верху.
На том же верхнем уровне находится и реализация этих репозиториев. А в "центре" только интерфейсы репозиториями реализуемые. Так что никаких противоречий тут нет.
0
1 / 1 / 0
Регистрация: 03.11.2018
Сообщений: 42
04.01.2019, 01:13  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
На том же верхнем уровне находится и реализация этих репозиториев. А в "центре" только интерфейсы репозиториями реализуемые. Так что никаких противоречий тут нет.
То что я смотрю, как организуют это с ЕФ, то репозиторий реализуют гораздо ниже верхнего уровня. по крайней мере в этой архитектуре

Добавлено через 4 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
какая разница, EF или голый ADO.NET? Смысл архитектурного подхода вообще никак не меняется. EF тоже строку подключения требует.
Может вы сможете подсказать как в этом примере еф заменить на голый адо? https://metanit.com/sharp/mvc5/23.1.php
заранее благодарю.
или хотя бы хоть какие то наводки дать.

Добавлено через 1 час 21 минуту
Просто если я начну реализовывать доступ к бд на самом верху, тогда придется и логику всю туда запихивать, если я правильно понимаю
0
Эксперт .NET
 Аватар для Usaga
14292 / 9377 / 1352
Регистрация: 21.01.2016
Сообщений: 35,337
04.01.2019, 05:27
Лучший ответ Сообщение было отмечено privetprivet как решение

Решение

Цитата Сообщение от privetprivet Посмотреть сообщение
То что я смотрю, как организуют это с ЕФ, то репозиторий реализуют гораздо ниже верхнего уровня. по крайней мере в этой архитектуре
Возможно, что вы просто кривой пример нашли. Или там не совсем луковая архитектура реализуется. У каждого же своё понимание может быть. Тоже самое, что и с MVC: кого не спроси, каждый по своему видит данное решение.

Цитата Сообщение от privetprivet Посмотреть сообщение
Просто если я начну реализовывать доступ к бд на самом верху, тогда придется и логику всю туда запихивать, если я правильно понимаю
Нет, не правильно понимаете. Бизнес-логика должна находиться в центре и не должна зависеть от внешнего слоя. Это внешний слой должен зависеть от центра. В центре находятся только интерфейсы репозиториев, в сами реализации в наружном слое. Там же, снаружи, находятся и все остальные сервисы для общения с внешним миром: файловой системой, реестром, сетью, каким-то оборудованием и всем прочим. В этом внешнем слое может быть только инфраструктурная логика, но не бизнес-логика.

Цитата Сообщение от privetprivet Посмотреть сообщение
Может вы сможете подсказать как в этом примере еф заменить на голый адо
Вопрос крайне странный. Серьёзно. В примере по ссылке есть интерфейс IBookRepository, который совершенно никаких ограничений не накладывает на свою реализацию. Т.е. вы его как угодно можете реализовать. Если умеете работать с ADO.NET, то уже умеете и заменить EF в реализации интерфейса.

Единственное, что в в том примере не канонично - автор разместил модельку Book в ядре и её же добавил в контекст EF'а. И вот это не правильно, ибо EF будет диктовать то, как эта моделька (и последующие) должна выглядеть. Эта моделька неизбежно будет отражать представление данных в таблицах в СУБД. В небольших приложениях, где луковая архитектура вообще имеет смысл, это не смертельно. Но в более крупных начнутся конфликты между тем, что нужно EF'у и тем, что хотело бы видеть "ядро" приложения.

Корректнее было бы разместить модели EF'а на том же внешнем уровне и мапить (проецировать) на модели из бизнес-логики. В случае использования голого ADO.NET (может быть в купе с Dapper.NET) каких-то требований к наличию структур хранения (модели EF'а) нет. Поэтому отдельные модели в инфраструктурном слое работы с СУБД не требуются (но могут заводиться по необходимости). Вот и вся разница.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.01.2019, 05:27
Помогаю со студенческими работами здесь

Работа с базой данных Access через ADO.NET
Учусь работать с базой данных Access через ADO.NET. Попробовал поработать с помощью мастеров - не понравилось, очень много непонятного...

Программа для работы с БД, используя ADO.NET ( сервер БД - MS SQL Server), открывать через браузер
Помогите разобраться, я не могу понять как программа должна открываться через браузер ( программа написана на C# с использованием...

C#, ADO.NET. Как защитить файл базы данных Access от удаления пользователем через проводник?
VS 2010, framework 4. Добавляю в проект ссылку "Microsoft ADO Ext. 2.8 for DDL and Security". При создании файла базы данных Access...

ASP.NET, ADO.NET, Access database, ПРОБЛЕМА!!!
Есть база данных на Access. хочу с помощью ASP.NET, ADO.NET вывести данные. но почему -то не работает... подскажите плиз если кто...

Материалы по ADO.NET, ASP.NET, VB.NET
Народ, может, кто знает, где можно достать материалы в электронном виде по этим курсам (книги, обучающие материалы)? Подскажите, буду...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru