Usa el controlador ADO.NET de Spanner

ADO.NET es una interfaz genérica para acceder a fuentes de datos para .NET. Para usar ADO.NET con tu aplicación, usa el controlador de Spanner ADO.NET.

El controlador de SpannerADO.NET admite bases de datos con dialecto de GoogleSQL y bases de datos con dialecto de PostgreSQL.

Instala el controlador de Spanner ADO.NET

Para usar el controlador de Spanner ADO.NET en tu aplicación, agrega el siguiente paquete a tu proyecto de .NET:

  Google.Cloud.Spanner.DataProvider

Usa el controlador de Spanner ADO.NET

Para crear una conexión de ADO.NET a una base de datos de Spanner, crea un SpannerConnectionStringBuilder con un nombre de base de datos completamente calificado como cadena de conexión:

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

Para obtener más información, consulta el repositorio de GitHub del controlador de Spanner ADO.NET.

Funciones admitidas

El directorio de código de ejemplos del controlador de Spanner ADO.NET contiene ejemplos listos para ejecutar para las funciones de Spanner de uso común.

Sugerencias para un mejor rendimiento

Para obtener el mejor rendimiento posible cuando uses el controlador de Spanner ADO.NET, sigue estas prácticas recomendadas:

¿Qué sigue?

  • Obtén más información para usar Spanner con los ejemplos de código del controlador de ADO.NET .
  • Obtén más información sobre ADO.NET.
  • Presenta un problema en GitHub para informar una solicitud de función o un error, o para hacer una pregunta sobre el controlador de Spanner ADO.NET.