Как структурировать сущностиC#

Место общения программистов C#
Ответить
Anonymous
 Как структурировать сущности

Сообщение Anonymous »

Я концептуально пытаюсь создать модель EF Core, основанную на коде, которая работает для создания логического представления в схеме GraphQL.
По сути, я тоже пытаюсь получить структуру это:
Изображение

Точкой входа запроса может быть пользователь (отфильтрованный по аутентифицированному пользователю), где вы можете получить подробную информацию о пользователе (имя, адрес электронной почты и т. д.), а также коллекции организаций, программ и проектов. Внутри структуры организации, программы и проекта вы можете перемещаться вверх и вниз, чтобы найти детей, родителей и т. д. В конечном итоге организации, программы и проекты имеют реестры содержания (реестр рисков, реестр проблем, реестр преимуществ и т. д.)
В настоящее время у меня есть простая реализация пользователей, организаций, программ и проектов со стандартным использованием отношений «многие: многие пользователи к организациям/программам/проектам» и 1:многие отношения org > prog > proj и GraphQl ( HotChocolate) создал хорошо работающую схему.
Когда я пытаюсь концептуализировать связь между общим элементом (в данном случае ContentRegister и несколькими родительскими элементами), я получаю коллекцию ContntRegister в родительский элемент, что нормально, а затем 3 дополнительных родительских типа в ContentRegister (по одному для Org/Prog и Proj), что не очень хорошо.
Аналогично, когда я пытаюсь включить объект UserRole между пользователями и Orgs/Progs/Projs, чтобы добавить к отношениям некоторые метаданные (например, владелец, редактор, просмотрщик и т. д.) В итоге я получаю одну коллекцию UserRole в Org/Prog/Proj, но затем те же три дополнительных типа FK в UserRole.
Изображение

Я думал о том, чтобы свести Org/Prog/Proj к общему поля с дискриминатором типа, а затем иметь отдельные сущности со спецификой для организации/программы или проекта, которые решат проблемы взаимоотношений UserRole и ContentRegister, но затем создадут необходимость в необязательном отношении 1:1 между новым сглаженным типом и одним из новых Записи OrgDetail, ProgDetail и ProjDetail
M
Я не могу представить себе, как заставить эту самую базовую структуру приложения управления проектами работать с моделью EF, основанной на коде, и API GraphQL ( который сам по себе кажется идеально подходящим для этой иерархической структуры контента).
Я не добавлял код для сущностей, поскольку в настоящее время это просто самые основные интерпретируемые EF отношения согласно документации MS, поэтому действительно ничего ценного. Предположим, что у всех них есть только идентификатор, имя (или роль в случае UserRole), а также либо коллекция дочерних элементов, либо родительский объект и идентификатор FK.

Подробнее здесь: https://stackoverflow.com/questions/785 ... e-entities
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»