gpt4 book ai didi

entity-framework - Entity Framework 4 将订单链接到拥有 10,000 个订单的客户的速度非常慢

转载 作者:行者123 更新时间:2023-12-04 22:50:45 24 4
gpt4 key购买 nike

这个难倒我了。

我有一个客户和订单实体。客户可以有很多订单。

当我创建一个新订单并设置 Customer 属性(Order.Customer = customer)时 Customer 有 10,000 个订单时,会有很长的延迟(20 秒)。在添加这个新订单之前,上下文似乎正在加载所有 10,000 个订单。

我目前没有直接使用 FK,我怀疑这可能会有所帮助。

任何想法如何在不进行大规模重构的情况下改进问题?

干杯。

最佳答案

问题很可能是您使用的是 T4 POCO 模板。此模板生成讨厌的修复方法并在所有导航属性中内部使用它们。如果您在一侧修改导航属性,它会触发修复,它将尝试修改反向导航属性以使对象图保持一致。问题来了。一旦您分配 Customer属性(property)给 Order实例它将修复 Orders Customer 上的属性(property)实例但像任何其他代码一样修复访问属性并触发所有客户订单的延迟加载。

只有几个解决方案:

  • 使用外键关系并设置 FK 属性。这应该适用于插入但对于更新它仍然会导致问题,因为将 FK 属性设置为另一个值将设置 null导航属性,这将再次触发前一个父级的修复。
  • 关闭此操作的延迟加载 - 您很可能不需要它来创建新订单。
  • 修改模板并删除fixupus
  • 关于entity-framework - Entity Framework 4 将订单链接到拥有 10,000 个订单的客户的速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6378063/

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