假设我有3个实体:Advert,User和UserRole。并在Web.Api项目中使用GetAllAdverts方法。
public IEnumerable<Advert> GetAllAdverts()
{
return repository.GetAll<Advert>();
}
当我输入url ../ api / advert 时,我会获得有关广告的所有广告和数据的JSON,但我也获得了有关用户和用户角色的所有数据。
我如何获得所有广告数据和仅UserName表单实体User?
这是通过创建DTO来完成的吗?
提前致谢!
答案 0 :(得分:1)
使用DTO通常是个好主意。这是更多的工作,但它给你完全控制,它抽象出特定数据层的特殊性。
在您的情况下,如果您确实只想要UserName
,您甚至必须使用DTO,因为无法从User
部分加载Advert
作为导航属性{ {1}}。
如果除了导航属性(如角色)之外您看到User
的所有属性并不重要,您还可以考虑(暂时)关闭存储库中的上下文的延迟加载并急切加载{ {1}}使用Advert.User
。