У меня есть два класса 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? Должен ли я создать сущность со всеми связями или есть другое решение?