В цитате из Руководства и правила для GetHashCode Эрика Липперта:
Правило: Потребители GetHashCode не могут полагаться на то, что он стабилен с течением времени или через приложения.
Предположим, что у вас есть объект Customer у которого есть куча таких полей, как Name, Адрес и т.д. Если вы сделаете два такие объекты с точно такими же данных в двух разных процессах, они не нужно возвращать один и тот же хэш код. Если вы сделаете такой объект на Вторник в один процесс, выключите его, и снова запустить программу В среду хэш-коды могут быть отличается.
Это укусило людей в прошлом. Документация для Заметки System.String.GetHashCode в частности, что два идентичных строки могут иметь разные хэш-коды в разных версиях CLR и на самом деле они это делают. Не хранить хеши в базах данных и ожидать, что они будут неизменными навсегда, потому что они не будут.
Итак, каков правильный способ создания HashCode строки, которую я могу хранить в базе данных?
(Пожалуйста, скажите мне, что я не первый человек, который оставил эту ошибку в программном обеспечении, которое я написал!)