Конечная точка WebApi ядра asp.net для многих и многих таблиц

Я разрабатываю базовое приложение веб-API asp.net, используя конечную точку, предоставленную нашей командой дизайнеров. Отношения "многие ко многим". Ниже приведены таблицы

Название таблицы:

  1. Пользователь (UserId, имя, пол).
  2. Роль (RoleId, Title)
  3. UserRole (UserId, RoleId).

Отношения:

  • Пользователь (1) - (Многие) Роль пользователя
  • Роль (1) - (Многие (UserRole).

Конечные точки роли:

  • GET - ›V1 / Роли
  • POST - ›V1 / Роли
  • PUT - ›V1 / Roles (Обновить много записей вместе - массив JSON в качестве тела запроса)
  • PUT - ›V1 / Roles / {RoleId}
  • УДАЛИТЬ - ›V1 / Roles / {RoleId}
  • УДАЛИТЬ V1 / роли (УДАЛИТЬ много записей вместе - массив JSON в качестве тела запроса)

Конечные точки пользователя:

  • GET - ›V1 / Пользователи
  • POST - ›V1 / Пользователи
  • PUT - ›V1 / Users / {UserId}
  • УДАЛИТЬ - ›V1 / Users / {UserId}

Конечные точки UserRole:

  • GET - ›V1 / UserRole
  • POST - ›V1 / UserRole
  • PUT - ›V1 / UserRole
  • УДАЛИТЬ– ›V1 / UserRole

Вопрос: при условии, что в нашей организации тысячи пользователей и тысячи ролей. Пожалуйста, посоветуйте, как лучше всего разработать конечную точку для таблиц отношений "многие-ко-многим".

Кроме того, если мы хотим добавить, обновить или удалить множество пользователей и назначенных им ролей за один вызов, что лучше всего?

Я создал указанную ниже конечную точку для объединения таблиц, но не уверен. пожалуйста посоветуй.

  • POST - ›V1 / UserRole
  • PUT - ›V1 / UserRole
  • УДАЛИТЬ - ›V1 / UserRole

Короче как вставить и обновить многие ко многим. когда у нас есть объединяющий стол? Я пробовал Google, но не нашел ни одного примера


person Ali    schedule 30.05.2021    source источник
comment
Конечные точки не зависят от того, сколько тысяч пользователей и тысяч ролей у вас есть в базе данных.   -  person Serge    schedule 30.05.2021
comment
Хорошо, спасибо за ответ. Могу ли я узнать, как разработать конечную точку для многих и многих таблиц?   -  person Ali    schedule 31.05.2021


Ответы (1)


Кроме того, если мы хотим добавить, обновить или удалить множество пользователей и назначенных им ролей за один вызов, что лучше всего?

Я создал указанную ниже конечную точку для объединения таблиц, но не уверен. пожалуйста посоветуй.

POST - ›V1 / UserRole
PUT -› V1 / UserRole
DELETE - ›V1 / UserRole

Во-первых, конечные точки представляют собой единицы функциональности приложения, которые отличаются друг от друга с точки зрения маршрутизации. Так что это не зависит от количества пользователей и ролей, а зависит от вашей функциональности. Вы можете создать следующую конечную точку:

  • POST - ›V1 / UserRole: добавить пользователя в роль.
  • PUT - ›V1 / UserRole: обновить роль пользователя.
  • УДАЛИТЬ - ›V1 / UserRole: удалить пользователя из группы ролей.

Поскольку вы уже настроили связь многие ко многим между таблица пользователей и ролей, а UserRole - это таблица соединений. Когда вы вызываете указанную выше конечную точку, вы можете запросить таблицу пользователей и ролей, чтобы проверить, существуют ли пользователь и роль (параметр) или нет. Если нет, создайте новый элемент. Затем обновите элемент таблицы UserRole.

Вот несколько статей о сущностях, связанных с обновлением, вы можете ссылаться на них:

Учебное пособие: Обновление связанных данных - ASP.NET MVC с EF Core

Обновление отношений многие ко многим в Entity Framework Core

Обновление ядра Entity framework от многих до многих

Как добавить / обновить отношения "многие ко многим" с одним концом объекта в ядре EF

person Zhi Lv    schedule 31.05.2021