Comment générer de numéro de commande unique?

Je suis à la recherche d'un bon moyen pour générer un unique numéro de commande. Pouvez-vous voir des problèmes avec le code ci-dessous?

int customerId = 10000000;

long ticks = DateTime.UtcNow.Ticks;

long orderId = customerId + ticks;

int orderNumber = orderId.GetHashCode();

Je vais vérifier que le numéro est unique dans la base de données avant la création de l'ordre.

Purement théoriquement, les hachages peuvent entrer en collision.
Assurément, il n'est pas vraiment unique vous êtes à la recherche pour, juste le prochain numéro séquentiel... je suis d'accord avec le folk-dessous de parler à l'aide d'une colonne d'identité.
Art: Rien de théorique. Les hachages de collision tous les temps. Il y a seulement environ quatre milliards de disponibles, alors, évidemment, ils vont entrer en collision.

OriginalL'auteur Junior Developer | 2010-02-15