Como deveríamos estar implentando Equals e GetHashCode para entidades NHibernate?

Há muitas perguntas e respostas e artigos para esta pergunta disponíveis, mas na minha opinião parece não haver uma resposta clara / correta real

Para mim, Ayende tem a melhor implementação genérica até agora que já vi:http://ayende.com/blog/2500/generic-entity-equality

.... Mas é de 2007 ....

Esta é a melhor maneira de implementar esses métodos, especialmente no que diz respeito ao NHibernate 3.2, que contém algumas diferenças na implementação de proxy para versões anteriores?

questionAnswers(3)

yourAnswerToTheQuestion