ScalarDB Cluster .NET Client SDK で C# クラスとしてテーブルをはじめよう
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
ScalarDB Cluster .NET Client SDK は、ScalarDB テーブルを C# オブジェクトとして抽象化することで、クラスターにアクセスするコードの作成に役立ちます。クラスター内のテーブルを表すクラスを定義すると、クラスターをクエリするときに列名やその型が混同されないようにすることができます。さらに、テーブルの構造が変更された場合は、IDE のリファクタリング機能を使用してコードに変更を適用できます。
次の例のように非同期メソッドを使用することをお勧めしますが、代わりに同期メソッドを使用することもできます。
SDK をインストールする
ScalarDB Cluster と同じメジャーバージョンとマイナーバージョンの SDK を .NET プロジェクトにインストールします。組み込みの NuGet パッケージマネージャーを使用してこれを行うことができます。<MAJOR>.<MINOR>
を、使用しているバージョンに置き換えます。
dotnet add package ScalarDB.Client --version '<MAJOR>.<MINOR>.*'
すべての ScalarDB テーブルのクラスを作成する
ScalarDB テーブルを C# オブジェクトとして操作するには、使用するテーブルごとにクラスを作成する必要があります。例:
using System.ComponentModel.DataAnnotations.Schema;
using ScalarDB.Client.DataAnnotations;
// ...
[Table("ns.statements")]
public class Statement
{
[PartitionKey]
[Column("order_id", Order = 0)]
public string OrderId { get; set; } = String.Empty;
[ClusteringKey]
[Column("item_id", Order = 1)]
public int ItemId { get; set; }
[Column("count", Order = 2)]
public int Count { get; set; }
}
プロパティに使用する型の詳細については、ScalarDB 列型と .NET 型間の変換方法を参照してください。
CRUD 操作を実行する
各テーブルのクラスを作成した後、ITransactionCrudOperable
の汎用 GetAsync
、ScanAsync
、InsertAsync
、UpdateAsync
、DeleteAsync
、UpsertAsync
、または MutateAsync
メソッドを使用して、クラスをオブジェクトとして使用できます。
これらの汎用メソッドを使用するには、using
セクションに次の名前空間を追加します。
using ScalarDB.Client.Extensions;