#c# #asp.net-core #asp.net-identity #clean-architecture
#c# #asp.net-ядро #asp.net-идентификатор #чистая архитектура
Вопрос:
Я хотел бы знать, может ли кто-нибудь помочь мне с этой небольшой дилеммой…
Я следую настройке проекта чистой архитектуры с использованием .net core 3.1. С проектами:
- API
- Домен
- Инфраструктура
- Приложение
В домене я не ссылаюсь ни на какие проекты (или пакеты), все остальное ссылается на него.
И у меня есть таблица ниже в домене:
Позже я добавил свой идентификатор в инфраструктуру, в которой у меня есть ApplicationUser, который расширяет IdentityUser.
Итак, сценарий выглядит следующим образом:
- пользователь регистрируется, а затем присоединяется к компании. У компании может быть много пользователей (это AspNetUser)
- Поэтому, когда пользователь входит в систему, он привязан к этой компании и может выполнять определенные действия в рамках этой компании
- И когда я получу компанию, у нее будет список пользователей, которые к ней привязаны.
Итак, у меня вопрос: что мне сделать, чтобы у меня была компания с набором пользователей, также без необходимости добавлять ссылку из домена в инфраструктуру
Комментарии:
1. Используете ли вы шаблон по умолчанию, созданный ASP.NET Ядро WebAPI -чистая архитектура? Разделены ли база данных идентификаторов и база данных по умолчанию?
2. Не шаблон по умолчанию нет, я добавил идентификатор отдельно в проект инфраструктуры.
Ответ №1:
Обычным способом решения этой проблемы является определение абстракции вашего пользовательского класса или интерфейса на уровне домена. Эта абстракция используется в классе company, и пользовательская реализация в проекте инфраструктуры происходит от нее.
Если наследование не является опцией, вы можете выбрать интерфейс в проекте домена и иметь адаптер в проекте инфраструктуры, который оборачивает фактическую пользовательскую реализацию, предоставляя доступ к ее свойствам.