Проблема решена
Во-первых, спасибо всем за ваши предложения. Я повторял каждое предложение снова и снова, пока не обнаружил проблему. Это то, что было не так, и, возможно, кто-то мог бы уточнить для других.
Мастер производительности VS2010 говорил, что каждый объект, передаваемый в PartialViews, занимал огромное процессорное время, и я предположил, что он является частичным, поскольку я прочитал, что у них могут быть проблемы.
foreach (ProfileComment item in Model)
{
Html.RenderPartial("UserActivityComment", item);
}
...
Friends friend = Model.Friends.Where(e => e.ID == activity.ActionID).FirstOrDefault();
if (friend.FriendsProfile.UserName != Page.User.Identity.Name)
{
Html.RenderPartial("UserActivityFriend.ascx", friend);
}
Объект ProfileComment и Friends (плюс другие) являются частью ViewModel, которую я генерирую и передаю на страницу. Теперь виртуальная машина генерируется через Entity Framework менее чем за 0,3 секунды, поэтому я предположил, что с виртуальной машиной все в порядке.
Огромная задержка наступила, когда я захотел, чтобы представление обработало его. Модель в цикле for была помечена, как и FirstOrDefault с помощью мастера Performace.
Хм, странно, модель строится быстро, но не обрабатывается быстро. Решение:
_entities.Friends.MergeOption = MergeOption.NoTracking;
_entities.ProfileComment.MergeOption = MergeOption.NoTracking;
Я думаю, что проблема заключалась в извлечении объекта из виртуальной машины для отправки в партиал, поскольку он также хотел поддерживать управление сущностями для отношений.
Больше информации на Aia Research
и blogs.microsoft.co.il/blogs/gilf/archive/2009/02/20/disabling-change-tracking-in-entity-framework.aspx
Пожалуйста, не стесняйтесь подробно остановиться на этом. Кстати, увеличение производительности составило огромный !