donné un edit: strong> int code>, comment créer le même guidon à plusieurs reprises? p>
J'implique deux systèmes, l'un utilise des INT comme clé primaire, l'autre reconnaît un objet par son GUID. Pour cette raison, je dois être en mesure de recréer le même guide pour un Int donné afin que le deuxième système puisse reconnaître les entités provenant du premier. P>
4 Réponses :
Vous pouvez convertir un INT64 en octet [] et utiliser la surcharge du constructeur pour le faire:
var guid = new Guid(byteArray);
Si vous créez un GUID basé sur un entier, il ne sera plus un identifiant unique globalement unique.
ayant dit que vous pouvez utiliser le constructeur qui prend un entier et d'autres paramètres: P>
int a = 5; Guid guid = new Guid(a, 0, 0, new byte[8]);
Travaux parfaits, les différents éléments du GUID me permettent également de distinguer également différents types d'entités. Merci!
Si vous voulez que le GUID consiste à juste em> l'int alors: int x = 5;
string padded = x.ToString().PadLeft(32,'0');
var intGuid = new Guid(padded);
intGuid.ToString(); // 00000000-0000-0000-0000-000000000005
Ceci est l'utilisation parfaite pour une version Il existe cinq types de GUID: P> Version 3 et 5 Version 5 sont conçus pour avoir un nom arbitraire Name em> Toujours sur le même GUID EM>. P> L'idée est Prendre un nom arbitraire " nom em>" et un espace de noms "", les hachages, et le hachage est soigneusement em> stocké dans une structure générale, conceptuellement: p> Vous évitez les collisions du même "nom" en préfixant avec l'espace de noms " em>": p> sauf plutôt que le "espace de noms" étant une chaîne, il est spécifié qu'il s'agissait d'un GUID: p> le RFC donne quatre uuides de noms de noms prédéfinis uuids: p> Le RFC décrit Comment mettre les 16 octets de votre hachage dans la structure des voyageurs. Si les 16 premiers octets de votre hachage sont les suivants: p> ils sont mappés dans la structure UUID: p> exécutant votre Les clients et les factures via mon
NameToToToGuid CODE> Fonction donne: P>
NameToGUIDA(Namespace_Customer, "1") = {7E378BDB-5BB1-5EBF-9C63-E00AC1AEEDB7}
NameToGUIDA(Namespace_Customer, "2") = {830F19D8-D5DC-5321-8CF9-D708660BE473}
NameToGUIDA(Namespace_Customer, "10") = {C052F6ED-0334-5827-B077-7F4C28B78223}
NameToGUIDA(Namespace_Invoice, "1") = {BB5408DA-B99C-5816-B144-A63CC02BB21C}
NameToGUIDA(Namespace_Invoice, "2") = {73DDD3B3-1139-50C8-9B0D-067145611346}
NameToGUIDA(Namespace_Invoice, "10") = {AE1799A8-620F-55DB-AC85-D7056B70AFB5}
Une implémentation C # est affichée par Bradley Grainger Stackoverflow.com/a/5657517/62857
Si le CDI devrait être lié d'une manière ou d'une autre à l'INT?
Est-ce pour tester quelque chose?
Vous devrez nous faire savoir quel système vous préférez.