Générer le hachage de l'objet de manière cohérente

Je vais essayer d'obtenir un hash (md5 ou sha) d'un objet.

J'ai mis en place ce:
http://alexmg.com/post/2009/04/16/Compute-any-hash-for-any-object-in-C.aspx

Je suis en utilisant nHibernate pour récupérer mon POCOs à partir d'une base de données.

Lors de l'exécution de GetHash sur ce, c'est différent à chaque fois qu'il est sélectionné et hydraté à partir de la base de données. Je suppose que c'est prévu, comme sous-jacent les procurations changement.

De toute façon,

Est-il un moyen d'obtenir un hachage de toutes les propriétés d'un objet, de façon cohérente à chaque fois?

J'ai joué avec l'idée d'utiliser un StringBuilder au cours de cette.GetType().GetProperties..... et la création d'une table de hachage, mais qui semble inefficace?

Comme une note de côté, c'est pour le suivi des modifications de ces entités à partir d'une base de données (SGBDR) pour un NoSQL magasin
(comparaison des valeurs de hachage pour voir si les objets ont changé entre sgbd et nosql)

Sont les hash stocké entre les sessions?
Plus d'informations sur la façon dont vous la sérialisation de la désérialisation de ces objets. Et êtes-vous d'écraser GetHashCode()?

OriginalL'auteur Alex | 2012-09-12