NHibernate 表更新事件

标签 nhibernate fluent-nhibernate

我有这个表映射(我认为细节并不重要):

WithTable("COPACKER_FACILITY");  
Id(x => x.FacilityNumber, "FACILITY_NUM").GeneratedBy.Sequence("FACSEQ");
Map(x => x.FacilityName, "FACILITY_NAME").Not.Nullable().Trimmed();
Map(x => x.AddressLine1, "ADDR1").Not.Nullable().Trimmed();
...
WithTable("FACIL_OTH_AUDIT_INFO", m =>
   {
      m.WithKeyColumn("FACILITY_NUM");
      m.Map(x => x.ProdnShiftsNum, "PRODN_SHIFTS_NUM").Not.Nullable();
      m.Map(x => x.ProdnCapacity, "PRODN_CAPACITY").Not.Nullable();
      m.Map(x => x.ProdnLinesNum, "PRODN_LINES_NUM").Not.Nullable();
      m.Map(x => x.AuditScore, "AUDIT_SCORE");
      m.References(x => x.FacilStatus, "STATUS_IND").Not.Nullable();
   });
HasMany(x => x.ComplianceFlags)
   .KeyColumnNames.Add("FACILITY_NUM")
   .Inverse()
   .Cascade.All();
...

一对一表的原因是出于审计原因。有一个 FACIL_OTH_AUDIT_INFO_HIST 表,应该获取主表中每次插入和更新的记录。

我的问题:我如何知道该表中何时发生插入或更新,以便我知道插入审核记录?

非常感谢!

最佳答案

+1 kvalcanti 所说的...这是另一篇文章,我认为它更好地解释了它(并向您展示了如何在没有 XML 配置的情况下做到这一点!)。我正在做这个人在我的项目中所做的事情,而且效果非常好。

http://www.codinginstinct.com/2008/04/nhibernate-20-events-and-listeners.html

警告:我没有在我的项目中插入需要在此事件中保存的新对象,我认为这不会成为问题,但我不能肯定地说,因为我没有完全按照您的方式进行操作正在做。

关于NHibernate 表更新事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/705943/

相关文章:

mysql - Nhibernate 选择日期部分

c# - 如何在(流利的)NHibernate 中使用字符串键

nhibernate - System.Data.SQLite 和 Fluent NHibernate - 找不到 IDBCommand

c# - Fluent NH 和接口(interface)映射

c# - 对 MembershipUser 的流畅 NHibernate 引用

c# - 数据库的正确模型,每个用户都有一个表

nhibernate - 使用 nHibernate 和 CaSTLe ActiveRecord 配置 NCache

asp.net-mvc - Asp.net MVC 3和NHibernate架构

c# - 帮助使用 FluentNHibernate 创建 ColumnName 约定

c# - 有没有流利的 NHibernate 书?