gpt4 book ai didi

c# - 使用 EntityFramework 在 MVC 中将具有导航属性的实体作为 JSON 返回的最佳实践

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:49 25 4
gpt4 key购买 nike

我有一个带有 EntityFramework 的 MVC 应用程序。我想返回一个具有导航属性的实体实例作为 JsonResult,例如,一个 Customer 实例,其中它具有指向订单列表的导航属性。

我想知道最好的方法是什么:

  • 声明一个新的 DTO/Model View 类来“扁平化”实体,但似乎 Customer 的冗余信息存储在每个 DTO/View Model 中。
  • 原样返回,然后在客户端处理。我不喜欢这种方法,因为我需要在客户端进行额外的处理,这很难调试。如果我在 Order 实体中有 Customer 导航属性,也存在循环引用的风险。

感谢任何反馈!

最佳答案

我认为最好的选择是第二个:将数据作为嵌套列表返回。但是您不应该一直扩展导航属性,并且在每个方法/端点中您应该定义并明确要扩展的属性(以避免您提到的循环引用问题以及其他性能问题)。假设您有一个 Customer 对象,其属性为 Orders,如果您需要返回它,您可以这样做:

return context.Users.Include(b => b.Orders).ToList(); 

如果您不需要单独端点的订单,您可以直接退回客户。

关于c# - 使用 EntityFramework 在 MVC 中将具有导航属性的实体作为 JSON 返回的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30601418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com