Я использую SubSonic 2 ~ 5 лет и мне это нравится. Однако в течение последних шести месяцев я думал о том, чтобы перейти на SubSonic 3 или аналогичный инструмент ORM. Поскольку моя компания использует множество инструментов Telerik, я решил попробовать OpenAccess. После его настройки я решил, что попробую чрезвычайно простую задачу загрузить RadGrid с информацией из нашей таблицы Users (~ 30 записей).
Итак, внутри события Grid OnNeedDataSource у меня есть следующее:
var start = System.Environment.TickCount;
context = new EntitiesModel();
rgUsers.DataSource = (from u in context.Users select u);
var stop = System.Environment.TickCount;
var elapsed = stop - start;
litTelerik.Text = string.Format("This process took <b>{0}</b> milliseconds", elapsed);
После создания этого и запуска страницы, он выплевывает, что это заняло 1607 мс. Однако после обновления страницы она возвращается как 0 секунд. (Почему?)
Затем я вставил код SubSonic:
var start = System.Environment.TickCount;
rgUsers.DataSource = new UserCollection().Load();
var stop = System.Environment.TickCount;
var elapsed = stop - start;
litTelerik.Text = string.Format("This process took <b>{0}</b> milliseconds", elapsed);
Я запускаю код в первый раз, и он говорит, что это заняло 171 мс. После обновления страницы, она сообщает, что это заняло 60-70мс.
Итак, мой вопрос: Почему ОА занимает значительно больше времени для загрузки при первом посещении, но ноль секунд для загрузки при каждом обновлении страницы? В то время как SubSonic значительно быстрее при первом посещении, но занимает ~ 65 мс при каждом обновлении страницы?
Я прошу прощения, если это "основной" вопрос или я не проверяю производительность должным образом. Если есть какой-либо способ улучшить этот метод, я буду очень признателен за любой совет.
Спасибо,
Andrew