Utiliser le pilote ADO.NET Spanner

ADO.NET est une interface générique permettant d'accéder aux sources de données pour .NET. Pour utiliser ADO.NET avec votre application, utilisez le pilote ADO.NET Spanner.

Le pilote SpannerADO.NET est compatible avec les bases de données utilisant les dialectes GoogleSQL et PostgreSQL.

Installer le pilote ADO.NET Spanner

Pour utiliser le pilote ADO.NET Spanner dans votre application, ajoutez le package suivant à votre projet .NET :

  Google.Cloud.Spanner.DataProvider

Utiliser le pilote ADO.NET Spanner

Pour créer une connexion ADO.NET à une base de données Spanner, créez un SpannerConnectionStringBuilder avec un nom de base de données complet comme chaîne de connexion :

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

Pour en savoir plus, consultez le dépôt GitHub du pilote ADO.NET Spanner.

Fonctionnalités compatibles

Le répertoire d'exemples de code du pilote ADO.NET Spanner contient des exemples prêts à l'emploi pour les fonctionnalités Spanner couramment utilisées.

Conseils relatifs aux performances

Pour obtenir les meilleures performances possibles lorsque vous utilisez le pilote ADO.NET Spanner, suivez ces bonnes pratiques :

Étape suivante

  • Découvrez comment utiliser Spanner avec les exemples de code du pilote ADO.NET .
  • En savoir plus sur ADO.NET.
  • Ouvrez une demande sur GitHub pour signaler une demande de fonctionnalité ou un bug, ou pour poser une question sur le pilote ADO.NET Spanner.