0

NoSQL データベース内の各ドキュメントに対して C# で独自の一意の ID を作成しようとしていますが、どうすればよいかわかりません。

私の例のUIDは次のようになります######.entityType@######.contextName.worldName

ハッシュは英数字です。

4

4 に答える 4

13

Guid.NewGuidメソッドを使用します。

Guid guid = Guid.NewGuid();
string uniqueID = guid.ToString();

グローバル一意識別子 - WIKI

Globally Unique Identifier は、コンピュータ ソフトウェアで識別子として使用される一意の参照番号です。通常、GUID という用語は、Universally Unique Identifier (UUID) 標準のさまざまな実装を指します。

于 2013-05-02T12:36:19.013 に答える
2

SnowMakerライブラリは、特定の一意性スコープ内で一意の識別子を提供するのに適しています。

于 2013-05-08T04:10:27.163 に答える
1

ここでいくつかの仮定を行いますが、GUID を生成し、GUID をハイフンで分割し、GUID の一部をユーザー名に使用することができます。

文字列ビルダーを使用してすべてを連結します。

アイデアを提供するためのサンプルコードを次に示します(テストされていません):

    Guid g = Guid.NewGuid();
    String[] parts = g.ToString().Split('-');

    StringBuilder sb = new StringBuilder();
    sb.Append(parts[0]);
    sb.Append("entityType@");
    sb.Append(parts[1]);
    sb.Append(".contextName.worldName");

    string ID = sb.ToString();

これはグローバルに一意ではありませんが、シナリオにかなりの範囲の一意性を与えるはずです。

上記のハッシュ長と一致させるには、次のようにします。

        String gString = Guid.NewGuid().ToString().Replace("-","");

        StringBuilder sb = new StringBuilder();
        sb.Append(gString.Substring(0,6));
        sb.Append("entityType@");
        sb.Append(gString.Substring(6,6));
        sb.Append(".contextName.worldName");

        string ID = sb.ToString();
        MessageBox.Show(ID);
于 2013-05-02T12:36:52.503 に答える
-2

作成するには、次のようにします。

string characters = "abcdefghi123456";

string result = "";

Random random = new Random();

for(int i = 0; i < 10; i++)
{
     result += characters[random.Next(0, characters.Length - 1)];
}

それが一意であるという保証はないので、挿入しようとする前にDBに保存されているレコードをチェックする必要があります.データベース内で同じ。たとえば、Abc は aBC と同じである可能性があります。

于 2013-05-02T12:40:12.277 に答える