|
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 54
|
|||||||||||
EF Core и паттерн Репозиторий21.10.2018, 20:29. Показов 2798. Ответов 5
Метки нет (Все метки)
В общем возник такой вопрос, есть общий репозиторий реализующий стандартные методы: Get,Insert,Update,Delete,GetAll,
есть так же классы сервиса, которые описывают методы каждой отдельной сущности.(разбито на несколько библиотек). Если это "примитивные" запросы на добавление удаление объектов из базы данных, то все хорошо работает. Например методы сервиса:
Репозиторий общий, для всех объектов бд. Т.е. получается, нужно либо в репозитории создавать кучу методов, либо используя один - getAll, а потом уже средствами C# выполнять все эти действия? Если объектов в бд пару сотен то не страшно, а если их несколько сотен тысяч?
0
|
|||||||||||
| 21.10.2018, 20:29 | |
|
Ответы с готовыми решениями:
5
Паттерн Репозиторий. Суть Паттерн репозиторий. Основная концепция Модели и паттерн "Репозиторий" |
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
|
||||||
| 22.10.2018, 06:29 | ||||||
|
makoooo, для этого наследуются от общего репозитория и реализуют дополнительные методы.
Так же, имеет смысл в общем репозитории реализовать методы Get и GetAll принимающие массивы предикатов (для формирования условия выборки через Where) и массивы "путей" (для Include). Это позволит сократить количество методов чтения данных. Так же, очень фиговой практикой является вызов SaveChanges в репозитории. У вас EF, он умеет в Unit Of Work, этим нужно пользоваться, раз оно есть. Заведите класс DataService, в котором будут репозитории, контекст и метод SaveChanges. Примерно так:
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 54
|
||||||
| 23.10.2018, 09:13 [ТС] | ||||||
|
Usaga, не совсем понял как должен выглядеть метод get, в репозитории т.е. нужно несколько перегружены методов get?
И еще вопрос, а что если использовать в сервисе для получения акаунта, скажем по логину:
0
|
||||||
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
|
||||||||
| 23.10.2018, 16:57 | ||||||||
Сообщение было отмечено makoooo как решение
Решение
1
|
||||||||
|
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 54
|
|
| 25.10.2018, 10:09 [ТС] | |
|
Добавить хотел вопрос небольшой, есть ли какие то определенные стандарты, для структурирования контроллеров? Сейчас они просто находятся в папке controllers, какая общая практика по организации их?
0
|
|
|
14307 / 9388 / 1355
Регистрация: 21.01.2016
Сообщений: 35,405
|
|
| 25.10.2018, 10:16 | |
|
makoooo, если контроллеров совсем дофига, то их можно раскладывать по папочкам в папке Controllers. Или делить приложение на Areas.
1
|
|
| 25.10.2018, 10:16 | |
|
Помогаю со студенческими работами здесь
6
Unit test сервиса, принимающего как аргумент репозиторий, а репозиторий организован через mysql.connector Python 3 Почему паттерн абстрактная фабрика - паттерн уровня объектов, если в нём могут быть статические отношения? ASUS F3Jp: замена Core 2 Duo T5500 на Core 2 Quad Q9000 Intel Core i3-380M или AMD Athlon 2 Dual-Core P360 Замена ЦП поменять проц Dual Core на Core 2 Duo. Целесообразно ли это? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-rectangles-sdl3-c. zip
finish-rectangles-sdl3-cpp. zip
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|