Работа с наборами самопроверяющихся объектов, вызывающими проблемы с производительностью - PullRequest
1 голос
/ 12 апреля 2011

Я видел это Пост от команды ADO.Net, который выглядит очень многообещающе, пока я не начал использовать его в своем приложении.У меня есть модель EF 4.0 с почти 100 самостоятельными объектами слежения.После включения итератора в мой проект любой из методов расширения «StartTrackingAll» или «StopTrackingAll» займет 5 секунд, чтобы завершиться.Кто-нибудь сталкивался с такой же проблемой или кто-нибудь знает какой-либо лучший вариант.

1 Ответ

1 голос
/ 12 апреля 2011

Связаны ли ваши сущности?В этом случае вам не нужно использовать StartTrackingAll, потому что StartTracking само по себе начинает отслеживание для всего графа объекта :

Метод 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 объектов одновременно.Также, если у сущностей нет отношений, возможно, их вообще не нужно отслеживать.

...