我有一个使用EntityFramework的MVC应用程序。 我想返回一个具有导航属性的实体实例作为JsonResult,例如,一个Customer实例,它具有一个订单列表的导航属性。
我想知道最好的方法是什么:
感谢您的反馈!
答案 0 :(得分:1)
我认为最好的选择是第二个:将数据作为嵌套列表返回。 但是你不应该一直扩展导航属性,并且在每个方法/端点中你应该定义并明确要扩展哪个属性(以避免你提到的循环引用问题加上其他性能问题)。 假设您有一个具有Orders属性的Customer对象,如果您需要将其返回,请执行以下操作:
return context.Users.Include(b => b.Orders).ToList();
如果您不需要在单独的终点订单,您可以退回客户。
答案 1 :(得分:1)
在大型项目中,我认为最好的方法是创建一个DTO,将您的数据序列化为JSON,以最好地满足消费者的需求。即使班级有相同的字段。随着项目的不断发展,越来越多的程序员开始使用代码,这样可以更好地进行维护。