В Java вы можете использовать Expression.Sql, то же самое должно работать в C #, что-то вроде:
var table = session.CreateCriteria(typeof(Table))
.Add(Expression.Sql("MD5(column)= ?", value, NHibernateUtil.String))
.UniqueResult<Table>();
, где value
- это шестнадцатеричное значение вашегоХэш MD5.
Хотя, одно слово предостережения - если значение, хранящееся в базе данных, является паролем пользователя, то ваш дизайн имеет недостатки и небезопасен.Вы должны хранить только соленые, хешированные пароли в базе данных.Нет, вы даже не должны этого делать, вы должны сразу использовать bcrypt , scrypt или PBKDF2 для этого.