Лучший способ загрузить ФК без свойства навигации - PullRequest
0 голосов
/ 15 января 2019

У меня есть два класса User и UserDesign, которые имеют отношение один к одному . User содержит информацию о пользователе, а UserDesign содержит информацию о предпочтениях пользователя.

UserDesign имеет свойство навигации к User, но User не имеет этого свойства навигации. Потому что пользователь может жить без дизайна (например, в другом проекте), а User и UserDesign не не в одной сборке .

В настоящее время я получаю такую ​​информацию:

_context.UserDesigns.Include(ud => ud.User)
    .ThenInclude(u => u.OtherRelations)
    .Include(ud => ud.User)
    .ThenInclude(u => u.OtherRelations2)
        .ThenInclude(or2 => or2.OtherRelations)

Что бы я хотел сделать:

_context.Users.Include("UserDesign")
    .Include(u => u.OtherRelations)
    .Include(u => u.OtherRelations2)
        .ThenInclude(or2 => or2.OtherRelations)

, что, на мой взгляд, более чётко и более понятно, поскольку целью запроса является пользователь, а не UserDesign.

Так что это не техническая проблема, скорее проблема мышления ^^

Конечно, если есть способ выполнить мой запрос, я не знаю, где я мог бы найти информацию о UserDesign, потому что у меня все еще нет свойства навигации в User классе

Отредактировано

Другая проблема с этой моделью заключается в том, что, если у меня есть другая сущность, которая в некотором роде похожа на UserDesign, скажем, говорит UserPicture, я получу информацию о User, UserDesign и UserPicture в одном запросе. Если бы я писал необработанный запрос на SQL, я мог бы достичь этого. Но в классе User у меня нет этого свойства навигации, поэтому я не могу достичь его с помощью EF Core.

Итак, мой вопрос: как мне этого добиться без правильного изменения класса User? Должен ли я создать сущность со всеми связями или есть другое решение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...