Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
privetprivet
0 / 0 / 0
Регистрация: 03.11.2018
Сообщений: 37
1

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

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

Здравствуйте. Подскажите пожалуйста. Реализую репозиторий доступа к бд через адо, без использования ЕФ.
В самом асп проекте использую Онион архитектуру. так вот встал вопрос как на нижележащем уровнем подключиться к бд, ведь все для подключения, включая веб конфиг находится на самом верху. Буду очень благодарен за любые наводки. А то в гугле, по всей видимости, все только ЕФ используют...
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2019, 13:16
Ответы с готовыми решениями:

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

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

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

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

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

3
Usaga
Эксперт .NET
5713 / 3947 / 704
Регистрация: 21.01.2016
Сообщений: 15,524
Завершенные тесты: 2
03.01.2019, 18:19 2
privetprivet, какая разница, EF или голый ADO.NET? Смысл архитектурного подхода вообще никак не меняется. EF тоже строку подключения требует.

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

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

Добавлено через 1 час 21 минуту
Просто если я начну реализовывать доступ к бд на самом верху, тогда придется и логику всю туда запихивать, если я правильно понимаю
0
Usaga
Эксперт .NET
5713 / 3947 / 704
Регистрация: 21.01.2016
Сообщений: 15,524
Завершенные тесты: 2
04.01.2019, 05:27 4
Лучший ответ Сообщение было отмечено privetprivet как решение

Решение

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

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

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

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

Корректнее было бы разместить модели EF'а на том же внешнем уровне и мапить (проецировать) на модели из бизнес-логики. В случае использования голого ADO.NET (может быть в купе с Dapper.NET) каких-то требований к наличию структур хранения (модели EF'а) нет. Поэтому отдельные модели в инфраструктурном слое работы с СУБД не требуются (но могут заводиться по необходимости). Вот и вся разница.
1
04.01.2019, 05:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.01.2019, 05:27

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

Отличия ADO.NET'03 и ADO.NET'05
Друзья, есть ли отличия в технологии ADO.NET для 2003 и для 2005, и насколько они велики? Вопрос...

Что лучше: работа с Access через ADO.NET или силами самого Access?
Считаю, что лучше работать с регулярно поступающим в Access объемом данных, разработав приложение...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru