Как бы я сделал это в с nhibernate? Автоматически меняющиеся поля? - PullRequest
0 голосов
/ 11 февраля 2011

Я привязан к SQL, я мог бы сделать частичное представление и сделать что-то вроде этого

public partial class User
    {

        partial void OnNameChanged()
        {
            UserName = StringFormatter.ToTitleCase(UserName.Trim());
        }

        partial void OnEmailChanged()
        {
            Email = Email.ToLower().Trim();
        }

    }

я могу сделать что-то подобное в nhibernate.Также, если вы можете.Можете ли вы сделать что-то подобное OnQuery или OnSave?

1 Ответ

3 голосов
/ 11 февраля 2011

Лучший способ сделать это с 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. Нет необходимости в частичном (хотя вы можете настроить его таким образом, если вы действительно этого хотите).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...