Использование модели представления организует код, но влияет ли это на производительность? - PullRequest
0 голосов
/ 22 декабря 2011

часть I Я работаю над веб-приложением, которое вместо того, чтобы использовать класс viewmodel для организации данных и использования в View, использует модель таблицы базы данных. Так, например, на мой взгляд, объявление модели выглядит так: @model aa.webobjects.object - объект автоматически генерируется dbml. Вопрос здесь заключается в том, что является преимуществом использования модели представления помимо организации данных? У меня есть другой класс под dbml, который, например, делает это:

public Product GetProductsByPrice
{
    get
    {
        return WebDataContext.Get().Products.Where(x => x.Price > 10);
    }
}

И в основном это используется для организации данных и извлечения данных из базы данных по мере необходимости. Заявление о возврате приводит нас ко второму вопросу.

Часть II Мое приложение имеет утечку памяти. Память продолжает расти и расти, и через некоторое время сервер умирает. Когда я читаю некоторые статьи, мне кажется, что я должен обернуть свой WebDataContext в оператор using, чтобы он правильно перезапустился. Мой вопрос здесь: разве использование Viemodel не вызывает утечку памяти, или, если я использовал viewmodels, чтобы организовать данные, и реорганизовать использование WebDataContext, чтобы он был заключен в оператор using, помог бы?

Я не уверен, правильно ли это объясняет проблему. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 23 декабря 2011

Конечно, вы должны утилизировать ваши экземпляры DataContexts (это в основном то, что делает использование). Я предлагаю добавить это в ваш Global.asax:

public void Request_End(object sender, EventArgs e)
{
    WebDataContext.Get().Dispose();
}

и сделайте WebDatacontext.Get (), чтобы вернуть его из HttpContext.Current.Items.

Таким образом, ваш текст данных будет доступен для всего запроса и будет удален, когда он вам больше не нужен.

Надеюсь, это поможет.

0 голосов
/ 23 декабря 2011

В чем преимущество использования модели View?

  1. При отправке на сервер вы можете использовать аннотации данных и привязку модели.Это значительно упрощает создание форм с проверкой достоверности.

  2. Объекты, поступающие из вашей БД, отслеживаются на предмет изменений и имеют при себе некоторый багаж.Модель представления (будучи POCO) содержит только те данные, которые вам нужны, без привязки ко всем остальным отслеживанием.Передача модели представления считается лучшей практикой, чем передача объектов вокруг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...