Как я могу автоматически обновить поле перед saveOrUpdate с Sharp Architecture - PullRequest
0 голосов
/ 26 августа 2010

Допустим, у меня есть эта сущность

public class Address : Entity
{
    public Address()
    {
        ModifiedDate = DateTime.Now;
    }

    [NotNull]
    public virtual Province Province { get; set; }

    [NotNullNotEmpty]
    [Length(Max = 80)]
    public virtual string Line1 { get; set; }

    [Length(Max = 80)]
    public virtual string Line2 { get; set; }

    [NotNullNotEmpty]
    [Length(Max=50)]
    public virtual string City { get; set; }

    [NotNullNotEmpty]
    [Length(Max = 15)]
    public virtual string PostalCode { get; set; }

    [NotNull]
    public virtual DateTime ModifiedDate { get; set; }
}

Я хочу обновить ModifiedDate перед каждым вызовом SaveOrUpdate?Как я могу это сделать?

Есть ли способ подключить что-то в хранилище?

1 Ответ

0 голосов
/ 26 августа 2010

Предполагая, что вы используете NHibernate с SharpArchitecture (поскольку это удачный путь), возможно, лучше всего добавить пользовательского прослушивателя NHibernate. Пример объясняется здесь: http://jakescott.tumblr.com/post/132853681/nhibernate-listeners-easy-last-modified-dates

Если бы это был я, я бы, вероятно, приспособил эту реализацию для использования DateTime.UtcNow вместо DateTime.Now, но это зависит от ваших потребностей, поэтому просто выберите ваши предпочтения.

Поскольку вы, вероятно, также используете FluentNHibernate, см. http://ferventcoder.com/archive/2009/11/18/nhibernate-event-listener-registration-with-fluent-nhibernate.aspx, чтобы найти решение для конфигурации Fluent.

В качестве альтернативы вы можете написать свою реализацию репозитория, чтобы сделать это для вас.

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