使用一组自我跟踪实体导致性能问题

时间:2011-04-12 15:18:39

标签: entity-framework-4 iterator ado.net-entity-data-model self-tracking-entities

ADO.Net团队看到了这个Post,看起来很有希望,直到我开始在我的应用程序中使用它。我有EF 4.0模型,有近100个自我跟踪实体。在我的项目中包含迭代器之后,任何扩展方法“StartTrackingAll”或“StopTrackingAll”都需要5秒才能完成。有没有人遇到同样的问题,或者有人知道任何更好的选择。

1 个答案:

答案 0 :(得分:1)

您的实体是否相关?在这种情况下,您无需使用StartTrackingAll,因为StartTracking本身starts tracking for whole object graph

  

StartTracking方法指示   更改实体上的跟踪器以启动   记录应用于的任何更改   实体。这包括对...的更改   标量属性,集合和   对其他实体的引用。该   自我跟踪实体开始跟踪   它们是自动的   通过反序列化到客户端   Windows Communication Foundation   (WCF)。跟踪也已打开   对于新创建的实体   以下场景:

* A relationship is created between the new entity and an entity that is already tracking changes.

* The MarkAs[State] or AcceptChanges method is called on an entity.

如果您没有使用相关实体,那么您需要同时跟踪100个实体,这听起来很奇怪。此外,如果实体没有关系,则可能根本不需要跟踪它们。