假设我有这个实体
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; }
}
我想在每次SaveOrUpdate调用之前更新ModifiedDate吗? 我怎么能这样做?
有没有办法在存储库中挂钩?
答案 0 :(得分:0)
假设你正在使用带有SharpArchitecture的NHibernate(因为这是一条快乐的路径),最好的选择可能是添加一个自定义的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配置解决方案。
作为替代方案,您当然可以编写存储库实现来为您执行此操作。