.NET MVC - Сохранение результата базы данных во время одностраничного результата? - PullRequest
0 голосов
/ 26 марта 2010

Довольно простая проблема, которая решается в PHP с помощью статической переменной.

private static $pages;
public function Pages() {
    if($pages == null) {
        $pages = new PageCollection();
        $pages->findAll();
    }
}

Везде в моем коде я использую Pages () :: someFindFunction (), чтобы убедиться, что результаты выбираются только один раз, и использую эту же коллекцию.

Я хочу то же самое в моем приложении .NET MVC: используйте что-то вроде:

<%=MySite.Pages.findById(1).Title%>

В приведенном ниже коде, если я использую закрытую переменную или если я использую открытый класс с общими переменными (не имеет значения), они оба сохраняются в течение всего приложения.

Я хочу, чтобы они загружались так же, как PHP, один раз за запрос. Где я могу хранить .NET-эквивалент private static $pages, чтобы работал приведенный ниже код?

            //what to do with $pages??

Public Module MySite
    Public Function Pages() As PageCollection
        If $pages Is Nothing Then
            $pages.loadAll()
        End If
        Return $pages
    End Function
End Module

1 Ответ

1 голос
/ 26 марта 2010

1-й, вы уверены, что хотите модуль? Обычно вы бы использовали класс.

Public Class MySiteController
    Private _pages as PageCollection
    ReadOnly Property Pages As PageCollection 
        Get
          If _pages Is Nothing Then 
            _pages = New PageCollection
            _pages.FindAll
          End If 
          Return _pages 
        End Get 
    End Function 

    ... other code here...

    '' use it as:  Pages.FindById(1)
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...