Это может быть организовано разными способами. Я могу рассказать вам, как я буду действовать. (Предполагая, что вы переходите в . net core world).
Я постараюсь описать, как организовать ваше решение в отдельных проектах, и я предполагаю, что вы хотите использовать сущность- каркас, хранилище и шаблоны рабочих единиц для доступа к БД.
В моем решении я бы создал следующие проекты:
один. NET Стандартный проект для хранения только модели (сущности и DTO) - назовите его "YourNamespace.Models"
one. NET Стандартный проект для хранения репозитория и контрактов / интерфейсов единиц работы - назовите его "YourNamespace.Contracts"
один. NET Стандартный проект для вашего уровня доступа к данным - назовите его "YourNamespace.DAL" . Здесь вы устанавливаете EF Core, где у вас будут конфигурации ваших сущностей (если вы используете Fluent API), ваши миграции также будут здесь (при необходимости), ваши реализации репозиториев, а также единица работы и контекст базы данных.
один. NET Стандартный проект для ваших услуг - назовите его "YourNamespace.Services"
один API-проект для ваши контроллеры API / службы REST - назовите его "YourNamespace.TodoAPI"
один MVC проект для MVC контроллеров - назовите его "YourNamespace .Todo MVC "
Эта структура удобна для использования внедрения зависимостей для ваших служб и всего, что вам нужно. Убедитесь, что вы выбрали Несколько загрузочных проектов в разделе Задать стартовые проекты (щелкните правой кнопкой мыши ваше решение). Выберите как API, так и MVC в качестве запускаемых проектов.
Нечто подобное описано здесь