我有两个类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类中,我没有此Navigations属性,因此我无法使用EF Core实现它。
所以我的问题是,如何在不正确修改User类的情况下实现这一目标?我是否要创建一个具有所有关系的实体,还是有其他解决方案?