2

次のスキーマを持つ Azure テーブルがあります。

public class Village : TableServiceEntity
{
    public Village(string districtName, string villageName)
    {
        PartitionKey = districtName.ToLower().Trim();
        RowKey = villageName.ToLower().Trim();

        DistrictName = districtName;
        VillageName = villageName;
    }
    public string DistrictName {get;set;}
    public string VillageName {get;set;}
}

地区名と村名は、それぞれパーティションと行キーです。このキーの大文字と小文字を区別しないようにします。つまり、ユーザーが次の値を指定した場合、両方が同じエンティティを表す必要があります。

あれは

DistrictName = "TVM"; VillageName = "CHEN";

DistrictName = "テレビ"; VillageName = "チェン";

上記の値は両方とも同じエンティティを表します。大文字と小文字を区別しない方法でパーティションと行キーを保存する必要があります。これは正しいアプローチですか?

4

1 に答える 1

5

はい、これは正しいアプローチのようです。

ToUpperInvariantの代わりに使用したい場合がありToLowerます。大文字はエッジ ケースが少なく、インバリアント カルチャを使用すると、より多くのエッジ ケースを回避できる可能性があると思います。(私はこれについてほとんど知らないので、私を信じるのではなく調べてください。)

于 2012-08-21T13:31:01.907 に答える