ASP.NET и Neo4jClient - где хранить соединение?

Клиент C # Neo4J имеетGraphClient куда ты должен позвонить.Connect()

var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
client.Connect();

Во всех примерах, которые я видел, он находится в консольном приложении, поэтому они объявляютGraphClient вMain() и снова использовать его. И документация упоминает, как его Thread Safe и иметь только один экземпляр на базу данных и не вызывать.Connect() многократно.

Но как насчет приложений ASP.NET? Должен ли я вставить его в некоторый статический класс, к которому обращаются страницы (или сохранить его в состоянии приложения)? Как это:

public class DbConnection
{
    private static GraphClient _client;
    public static GraphClient GraphClient
    {
        get
        {
            if (_client == null)
            {
                _client = new GraphClient(new Uri("http://localhost:7474/db/data"));
                _client.Connect();
            }
            return _client;
        }
    }
}

И тогда на любой странице ASPX я мог бы просто:

protected void Page_Load(object sender, EventArgs e)
{
    GraphClient client = DbConnection.GraphClient;
    //do whatever I need to with client
}

Или я не правильно понимаю, и это вызовет всевозможные проблемы? Мне нужно позвонить.Connect() в каждом методе (или, возможно, один раз на жизненный цикл страницы), например, так:

private GraphClient _client;
private GraphClient PageGraphClient
{
    get { //same as in previous, check if null and load _client with the connection }
}

protected void Page_Load(object sender, EventArgs e)
{
    //do whatever I need to with PageGraphClient
}

protected void btnSave_Click(object sender, EventArgs e)
{
    //do whatever I need to with PageGraphClient
}

И так далее? Я полагаю, что я просто зацикливался на поточной безопасности и "делал слишком много подключений к БД" и хотел убедиться, что я не пропускаю простой / правильный способ сделать это.

(и да, я знаю, что не должен вызывать команды базы данных напрямую со страниц ASPX, я слишком упрощаю для понимания того, как работает класс GraphClient;)

Ответы на вопрос(1)

Ваш ответ на вопрос