C# で Azure Table Storage の読み書きする方法

対あり技術部(技術系)

LT;DR

  • なんかいっつもAzure Table Storage の SDK なに使っていいかわからんくなる(雑魚
  • とりあえず、最新のSDKはここ確認しに行け

本編

Table Storage いじるときの SDK の選び方

.NET や Nugetで提供されている Azure Table Storage 用の SDK の推奨がバージョンによってコロコロ変わっている気がして、いっつもどれ使うのがいいのか忘れるのでメモです。

Azure Storage Account のなかでも、Queue とか Blob とは なんか別であるんですよねえ…

結論から言うと、MS の公式リファレンスをたどって、しっかり確認しろってことですね。
リファレンスをたどると、ここから最新の推奨SDKが確認できるようでした。

2022-08-06 現在の SDK Availability はこうなってるらしいです。

筆者は仕事と趣味ではC#なので、.NET のパッケージを確認します。
なるほど Azure.Data.Tables とな。

どうしよう、正直これ使ったことないぞw

なので、最低限読み書きできるくらいまで遊んでおいて、迷走しないようにメモしておきます。

C# のサンプル

って思ったけど、特に書くことなかったw

Microsoft.Azure.Cosmos.Table とかか使うとクッソいろいろ書かないといけなかったけど、なんも考えずに使えました。

マジで書くことありませんでした(爆)

using Azure;
using Azure.Data.Tables;

namespace Program
{
    public static class Program
    {
        public static void Main(string[] args)
        {
            var connectionString = @"接続文字列";
            var tableName = "SampleTable";
            var client = new TableClient(connectionString, tableName);

            var sampleEntities = new SampleEntity[]
            {
                new SampleEntity("sample", "0001", "山田 太郎", "静岡県浜松市北区xxx-xxx", "053-523-0000"),
                new SampleEntity("sample", "0002", "山本 次郎", "静岡県浜松市北区yyy-yyy", "053-999-0000"),
                new SampleEntity("sample", "0003", "山下 三郎", "静岡県浜松市北区zzz-zzz", "053-888-0000"),
            };

            client.CreateIfNotExists();
            foreach (var entity in sampleEntities)
            {
                client.AddEntity(entity);
            }
        }
    }

    public class SampleEntity : ITableEntity
    {
        public SampleEntity(string partitionKey, string code, string userName, string address, string tel)
        {
            PartitionKey = partitionKey;
            RowKey = code;
            UserName = userName;
            Address = address;
            Tel = tel;
        }

        public string PartitionKey { get; set; }
        public string RowKey { get; set; }
        public DateTimeOffset? Timestamp { get; set; }
        public ETag ETag { get; set; }

        public string Code
        {
            get => RowKey;
        }
        public string UserName { get; set; }
        public string Address { get; set; }
        public string Tel { get; set; }

    }
}

これ走らせれば、サンプルで作った Entities が Table に書き込まれます。簡単すぎ

おしまい。

コメント

タイトルとURLをコピーしました