NoSQL データベース内の各ドキュメントに対して C# で独自の一意の ID を作成しようとしていますが、どうすればよいかわかりません。
私の例のUIDは次のようになります######.entityType@######.contextName.worldName
ハッシュは英数字です。
NoSQL データベース内の各ドキュメントに対して C# で独自の一意の ID を作成しようとしていますが、どうすればよいかわかりません。
私の例のUIDは次のようになります######.entityType@######.contextName.worldName
ハッシュは英数字です。
Guid.NewGuidメソッドを使用します。
Guid guid = Guid.NewGuid();
string uniqueID = guid.ToString();
Globally Unique Identifier は、コンピュータ ソフトウェアで識別子として使用される一意の参照番号です。通常、GUID という用語は、Universally Unique Identifier (UUID) 標準のさまざまな実装を指します。
SnowMakerライブラリは、特定の一意性スコープ内で一意の識別子を提供するのに適しています。
ここでいくつかの仮定を行いますが、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);
作成するには、次のようにします。
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 と同じである可能性があります。