设置上次修改和使用NHibernate进行修改的最佳做法是什么?

Mar*_*tuc 5 nhibernate change-tracking

在我的应用程序中,我遇到的情况是我们需要捕获创建和修改记录的时间以及用户执行这些操作的内容.所以我可能有一个像这样的对象:

public class Product
{ 
  int Id;
  int Name;
  DateTime CreatedOn;
  int CreatedByUserId;
  DateTime LastModifiedOn;
  int LastModifiedByUserId;
}
Run Code Online (Sandbox Code Playgroud)

在NHibernate中处理这些问题的最佳做法是什么?通过使用类似于此处描述的拦截器?

Die*_*hon 1

我认为没有“最佳”实践,但使用事件侦听器对此更为常见。http://ayende.com/Blog/archive/2009/04/29/nhibernate-ipreupdateeventlistener-amp-ipreinserteventlistener.aspx有一个很好的例子

您需要考虑的一件事是您需要将该 userId 存储在某处。我目前正在通过在启动时在侦听器上分配静态属性来实现此目的。它并不漂亮,但它可以完成工作。