IDesign AddDbContext с интерфейсом? - PullRequest
       7

IDesign AddDbContext с интерфейсом?

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

Я пытаюсь создать новое базовое веб-приложение asp.net, используя страницы Razor.Я хочу добавить свой контекст БД в файл startup.cs, но я использую нечто, называемое IDesign.

Моя сущность DbContext находится в проекте, на который мне запрещено ссылаться.Мне нужно как-то добавить свой контекст на уровне доступа или что-то еще.Я не очень хорошо знаком с тем, как сервисы работают для ядра .net.

У меня есть решение, настроенное так:

  1. Проект клиентов
    1. Проект сфайлы cshtml, startupcs и все, что здесь есть
    2. Может ссылаться только на менеджеры и проекты утилит
  2. Менеджер проектов
    1. Используется для объединения вызовов в движки/ аксессоры для выполнения задач на высоком уровне
    2. Используется для звонков аксессорам
    3. Может ссылаться только на аксессоры, движки и утилиты проекта
  3. ДвигателиПроект
    1. Используется для бизнес-логики
    2. Может ссылаться только на проекты доступа и утилиты
  4. Средства доступа Project
    1. Средства доступа к ресурсам.Хиты dbs / services.
    2. Здесь живет мой класс dbcontext
    3. не может ссылаться ни на что, кроме утилит
  5. Utilities Project
    1. Используется для хранения глобальных классов и служебных функций, которые применяются ко всем проектам
    2. Ничего не может ссылаться

Моя проблема в том, что если мой DbContext живет впроект accessors, как мне передать это менеджерам, чтобы я мог использовать его в клиентах?Кто-нибудь имел опыт работы с этим раньше?

Просто повторюсь, я знаю, что могу легко ссылаться на проект аксессоров в проекте клиентов и использовать оттуда dbcontext.Моя проблема в том, что я хочу избежать возможности ссылаться на средства доступа, чтобы другие люди, работающие с этим кодом, не могли видеть какие-либо классы средств доступа.

1 Ответ

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

Вы можете добавить связанные классы DbContext в новый проект без частей проекта «Accessors».Он будет аналогичен проекту «Утилиты», на который могут ссылаться все проекты.Таким образом, ваш проект «Клиенты» знает, что такое объект DbContext и как его использовать, но не знает, как его получить (если только он не имеет строки подключения и не подключается к базе данных напрямую, используя класс DbContext).).Это будет нести ответственность за проект «Менеджеры» или «Accessors».

Цепочка ссылок будет выглядеть следующим образом:

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