GlobalRepository — это «общий» репозиторий, который заменяет все репозитории в вашем проекте, поэтому вам просто нужно будет использовать один уникальный репозиторий, что означает поддержку одного репозитория. С GlobalRepository вам не нужно создавать новый репозиторий для каждой модели и определять методы! просто добавьте и используйте его.
Пожалуйста, обрати внимание :
Я назвал его ГЛОБАЛЬНЫМ репозиторием, а не ОБЩИМ, потому что цель состоит в том, чтобы использовать один репозиторий для всех моделей, что означает: называйте его ГЛОБАЛЬНО в своем проекте, в этом случае вы избежите тонны кода (конечно, вы можете изменить его и реализовать). это как обычный репозиторий GENERIC)
Методы возвращают IQueryable, который обеспечивает максимальную гибкость и позволяет эффективно выполнять запросы в отличие от фильтрации в памяти и т. д., а также может уменьшить необходимость создания множества конкретных методов выборки данных. С другой стороны, теперь вы дали своим пользователям дробовик. Они могут делать вещи, которые вы, возможно, не предполагали (чрезмерное использование .include(), выполнение тяжелых запросов, фильтрацию в памяти в их соответствующих реализациях и т. д.), что по сути обходит управление уровнями и поведением, поскольку вы предоставили полный доступ. Поэтому, пожалуйста, перед использованием примите во внимание команду, ее опыт, размер приложения, общую многоуровневость и архитектуру...
Этот репозиторий также содержит: SmartDeletersService, который проверяет базу данных всякий раз, когда объект используется другими объектами, методы возвращают True, если они это обнаруживают, в противном случае они возвращают False.
GlobalRepository работает где угодно, просто скачайте файлы, добавьте их в свой проект и пользуйтесь :D
пожалуйста, помните:
PS: для правильной работы ваши модели должны расширять BaseEntity, я добавил файл, чтобы вы могли увидеть, как выглядит BaseEntity (для новичков).
Если вам что-то нужно, свяжитесь со мной по адресу: [email protected].