Как настроить структуру проекта для EF и шаблона репозитория - PullRequest
0 голосов
/ 20 июня 2020

Я прорабатываю руководство по EF 6 и шаблону репозитория. Весь проект разбит на папки, но я пытаюсь понять, как я могу разделить его на отдельные проекты библиотек слоев / классов.

В настоящее время у меня есть следующее (Использование первого подхода DB)

  • .EDMX файл, подключенный к моей базе данных (в этом примере я буду использовать 2 таблицы Customers и Addresses)

  • Частичные классы (переопределение Customers и Addresses)

  • IRepository

      public interface IRepository<TEntity> where TEntity : class`
    

    Этот интерфейс затем используется для создания других репозиториев, т.е.

      ICustomer (public interface ICustomer : IRepository<Customer>
    

Затем у меня есть IUnitOfWork и, наконец, веб-приложение (веб-формы).

Итак, мой подход - добавить библиотеку классов (я назову это DAL), добавить EF 6 и my .EDMX файл контекста вместе с папкой для всех сущностей, которым требуется частичный класс для.

Как следует разделить оставшиеся области на библиотеки классов? Должен ли я иметь IRepository в отдельном классе (может быть, под названием Services)? Если да, я бы просто добавил интерфейсы Customer / Addresses в эту библиотеку вместе с классами, которые извлекали бы данные, например, Add, Get Delete?

Для единицы работы - если она также находится в другом библиотека классов?

WebApp - в соответствии с курсом я бы добавил ссылку на модуль библиотеки классов Work (насколько я понимаю).

Было бы здорово, если бы кто-нибудь мог показать мне пример чтобы заполнить этот недостающий пробел, поскольку я видел несколько онлайн-обсуждений, но не могу найти способ все соединить?

1 Ответ

0 голосов
/ 20 июня 2020

Короче, Repository и Unit of work по сути являются частью вашей структуры данных. В вашем случае ваш проект DAL.

Repositories будет тем, как вы абстрагируете свой уровень данных, как вы получаете доступ к своему DbSets.

Unit of work - это то, как вы получаете доступ ваши репозитории и отслеживайте изменения.

Если у вас есть библиотека классов Core или что-то в этом роде, именно там должны быть размещены ваши интерфейсы (IRepository, IUnitOfWork, ...).

В этой статье здесь показано, как структурировать с. NET Core API и Entity Framework Core, но идея должна быть такой же для. NET framework и EF6.

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