Лучший способ сделать это с NHibernate - использовать методы доступа к свойствам напрямую:
public class User
{
...
private string userName;
public virtual string UserName
{
get{return StringFormatter.ToTitleCase(userName.Trim());}
set{userName = StringFormatter.ToTitleCase(value.Trim());}
}
private string email
public virtual string Email
{
get{return email.Trim().ToLower();}
set{email= value.Trim().ToLower();}
}
...
}
Поскольку NHibernate не генерирует DAO, а просто использует существующий объект домена, у вас есть полный контроль над логикой get / set. Нет необходимости в частичном (хотя вы можете настроить его таким образом, если вы действительно этого хотите).