#asp.net-core #architecture
#asp.net-core #архитектура
Вопрос:
У меня есть .Приложение Net core MVC и библиотека классов имеют имена UIServiceLayer. UIServicelayer имеет следующие классы:
- страница открытого класса.
- внутренний виджет класса.
- внутренний класс WidgetType.
- — еще несколько внутренних классов, связанных с объектами пользовательского интерфейса.
- внутренние данные класса.
В UIServicelayer общедоступным является только класс Page, и это единственная точка взаимодействия с UIServicelayer.
У меня есть строка подключения, хранящаяся в файле appsettings.json приложения .Net Core MVC, который мне нужно передать в класс Data.cs, чтобы он мог установить соединение с БД.
Проблема в том, что я не хочу передавать строку подключения через класс Page.cs, потому что класс Page не должен иметь отношения ни к чему, кроме страницы пользовательского интерфейса, виджетов и прочего, и я также не хочу помечать класс данных как общедоступный, потому что я не хочу, чтобы мое приложение .Net Core отображаловзаимодействуйте с классом данных напрямую.
Может кто-нибудь подсказать мне, как передать строку подключения к классу данных из моего приложения .Net Core?
Комментарии:
1. Какова связь между классом страницы в приложении .net core и классом librabry? Если вы получите данные в Data.cs, будут ли они продолжать возвращаться в приложение .net core?
2. @Karney. Приложение .Net core может запрашивать у класса страницы такие вещи, как «Дайте мне список всех виджетов в этой конкретной форме» или «Дайте мне дочерние виджеты этого конкретного виджета» и т.д… Затем класс page подготовит соответствующие SQL-запросы и отправит их в класс Data. Ответственность за создание соединения с БД и выполнение запросов, отправляемых классом страницы, лежит на классе данных. Класс Data отправит результаты в класс Page, который вернет формат и вернет результаты. Приложение Net Core. С ADO . Чистый код находится в классе данных, поэтому мне нужно отправить информацию о подключении к БД в класс данных.
3. @Karney. Класс Page отвечает за генерацию логики (операторов SQL), которые будут извлекать необходимые данные. Класс данных отвечает за создание соединения с БД и выполнение этих SQL-запросов.
4. Можете ли вы добавить общедоступный интерфейс (что-то вроде
IDatabaseConfiguration
) в свой проект? Вы можете добавить свойство для этого, содержащее вашу строку подключения. Затем вы используете DI (внедрение зависимостей) и разрешаете его. ВыUIServiceLayer
знаете только об интерфейсе, и ваше приложение MVC отвечает за заполнение значения строки подключения. Это будет вариант?5. Звучит хорошо для меня. Спасибо.