ASP.NET y Neo4jClient: ¿dónde almacenar la conexión?

El C # Neo4JClient tieneGraphClient donde tienes que llamar.Connect()

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

En todos los ejemplos que he visto, está en una aplicación de consola, por lo que declaranGraphClient enMain() y reutilizarlo. Y la documentación menciona cómo es seguro para subprocesos y para tener solo una instancia por base de datos y no llamar.Connect() varias veces.

Pero, ¿qué pasa con las aplicaciones ASP.NET? ¿Debo pegarlo en alguna clase estática a la que acceden las páginas (o almacenarlo en el estado de la Aplicación)? Me gusta esto:

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;
        }
    }
}

Y luego en cualquier página ASPX podría simplemente:

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

¿O no lo estoy entendiendo correctamente y eso causaría todo tipo de problemas? ¿Necesito llamar?.Connect() en cada método (o tal vez una vez por ciclo de vida de la página), así:

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
}

¿Y así? Supongo que me estoy quedando colgado de todo lo relacionado con Thread Safe y "estoy haciendo demasiadas conexiones a la base de datos" y quiero asegurarme de que no me estoy perdiendo una manera fácil / correcta de hacer esto.

(y sí, sé que no debería llamar directamente a los comandos de la base de datos desde las páginas ASPX, estoy simplificando demasiado para entender cómo funciona la clase GraphClient;)

Respuestas a la pregunta(1)

Su respuesta a la pregunta