שימוש ב-Spanner ADO.NET driver

ADO.NET הוא ממשק גנרי לגישה למקורות נתונים עבור ‎ .NET. כדי להשתמש ב-ADO.NET עם האפליקציה, צריך להשתמש במנהל ההתקן של Spanner ADO.NET.

הדרייבר SpannerADO.NET תומך במסדי נתונים של ניב GoogleSQL וגם במסדי נתונים של ניב PostgreSQL.

התקנת מנהל ההתקן Spanner ADO.NET

כדי להשתמש ב-Spanner ADO.NET driver באפליקציה, מוסיפים את החבילה הבאה לפרויקט ‎ .NET:

  Google.Cloud.Spanner.DataProvider

שימוש ב-Spanner ADO.NET driver

כדי ליצור חיבור ADO.NET למסד נתונים של Spanner, יוצרים SpannerConnectionStringBuilder עם שם מסד נתונים מוגדר במלואו כמחרוזת החיבור:

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

מידע נוסף זמין במאגר GitHub של מנהל ההתקן Spanner ADO.NET.

תכונות נתמכות

ספריית הקוד של דוגמאות ל-driver של Spanner ADO.NET מכילה דוגמאות מוכנות להפעלה לתכונות נפוצות של Spanner.

טיפים לשיפור הביצועים

כדי להשיג את הביצועים הטובים ביותר כשמשתמשים ב-Spanner ADO.NET driver, כדאי לפעול לפי השיטות המומלצות הבאות:

המאמרים הבאים

  • דוגמאות קוד לשימוש ב-Spanner עם מנהל ההתקן ADO.NET
  • מידע נוסף על ADO.NET
  • הגשת בקשה ב-GitHub כדי לדווח על הגשת בקשה להוספת תכונה או על באג, או כדי לשאול שאלה לגבי מנהל ההתקן Spanner ADO.NET.