J'ai utilisé MongoDB avec C#, et j'ai utilisé ObjectIds, puis les GUID plus tard pour mes ID d'entité. Je déteste regarder ces Id, je pense que c'est contre-intuitif ... J'aimerais vraiment pouvoir utiliser des entiers ou des longs, comme des DB relationnelles Identity column. Mais j'ai du mal à trouver un moyen de le faire. Si j'utilise collection max + 1, cela conduira à des conditions de course. J'ai lu sur l'utilisation d'un algorithme Hi-Lo Generator, mais comment cela fonctionne-t-il? Que faire si j'ai 10 serveurs d'application exécutant le même code? Cela signifie-t-il que je dois avoir 10 gammes d'identité hi lo par collection?C# - Générer "identité" comme Id avec NoSQL (MongoDB)?
Si quelqu'un peut me diriger vers un algorithme C# pour partager ce serait génial! J'ai vu RNGCryptoServiceProvider d'ailleurs, mais cela n'est pas garanti pour être unique, et ce n'est pas une identité int/long séquentielle. Je préfère utiliser Salut-Lo à ce moment-là ...
Merci, Tim
J'ai créé une implémentation de ceci ici: https://github.com/alexjamesbrown/MongDBIntIdGenerator - c'est un travail en cours, et a besoin de plus de tests etc ... mais c'est un début – Alex