Utilizzare il driver ADO.NET di Spanner

ADO.NET è un'interfaccia generica per l'accesso alle origini dati per .NET. Per utilizzare ADO.NET con la tua applicazione, utilizza il driver Spanner ADO.NET.

Il driver SpannerADO.NET supporta sia i database con dialetto GoogleSQL sia quelli con dialetto PostgreSQL.

Installare il driver Spanner ADO.NET

Per utilizzare il driver Spanner ADO.NET nella tua applicazione, aggiungi il seguente pacchetto al tuo progetto .NET:

  Google.Cloud.Spanner.DataProvider

Utilizzare il driver Spanner ADO.NET

Per creare una connessione ADO.NET a un database Spanner, crea un SpannerConnectionStringBuilder con un nome di database completo come stringa di connessione:

GoogleSQL

/// <summary>
/// Create an ADO.NET connection to a Spanner database.
/// </summary>
/// <param name="connectionString">
/// A connection string in the format
/// 'Data Source=projects/my-project/instances/my-instance/databases/my-database'.
/// </param>
public static async Task CreateConnection(string connectionString)
{
    // Use a SpannerConnectionStringBuilder to construct a connection string.
    // The SpannerConnectionStringBuilder contains properties for the most
    // used connection string variables.
    var builder = new SpannerConnectionStringBuilder(connectionString)
    {
        // Sets the default isolation level that should be used for all
        // read/write transactions on this connection.
        DefaultIsolationLevel = IsolationLevel.RepeatableRead,

        // The Options property can be used to set any connection property
        // as a key-value pair.
        Options = "statement_cache_size=2000"
    };

    await using var connection = new SpannerConnection(builder.ConnectionString);
    await connection.OpenAsync();

    await using var command = connection.CreateCommand();
    command.CommandText = "SELECT 'Hello World' as Message";
    await using var reader = await command.ExecuteReaderAsync();
    while (await reader.ReadAsync())
    {
        Console.WriteLine($"Greeting from Spanner: {reader.GetString(0)}");
    }
}

PostgreSQL

/// <summary>
/// Create an ADO.NET connection to a Spanner PostgreSQL database.
/// </summary>
/// <param name="connectionString">
/// A connection string in the format
/// 'Data Source=projects/my-project/instances/my-instance/databases/my-database'.
/// </param>
public static async Task CreateConnection(string connectionString)
{
    // Use a SpannerConnectionStringBuilder to construct a connection string.
    // The SpannerConnectionStringBuilder contains properties for the most
    // used connection string variables.
    var builder = new SpannerConnectionStringBuilder(connectionString)
    {
        // Sets the default isolation level that should be used for all
        // read/write transactions on this connection.
        DefaultIsolationLevel = IsolationLevel.RepeatableRead,

        // The Options property can be used to set any connection property
        // as a key-value pair.
        Options = "statement_cache_size=2000"
    };

    await using var connection = new SpannerConnection(builder.ConnectionString);
    await connection.OpenAsync();

    await using var command = connection.CreateCommand();
    command.CommandText = "SELECT 'Hello World' as Message";
    await using var reader = await command.ExecuteReaderAsync();
    while (await reader.ReadAsync())
    {
        Console.WriteLine($"Greeting from Spanner: {reader.GetString(0)}");
    }
}

Per maggiori informazioni, consulta il repository GitHub del driver Spanner ADO.NET.

Funzionalità supportate

La directory del codice di esempio del driver Spanner ADO.NET contiene esempi pronti per l'esecuzione per le funzionalità di Spanner di uso comune.

Suggerimenti sulle prestazioni

Per ottenere le migliori prestazioni possibili quando utilizzi il driver Spanner ADO.NET, segui queste best practice:

Passaggi successivi

  • Scopri di più sull'utilizzo di Spanner con gli esempi di codice del driver ADO.NET .
  • Scopri di più su ADO.NET.
  • Apri un problema su GitHub per segnalare una richiesta di funzionalità o un bug oppure per porre una domanda sul driver Spanner ADO.NET.