我有这个表映射(我认为细节并不重要):
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
表应该为主表中的每个插入和更新获取一条记录。
我的问题:我如何知道该表中何时发生插入或更新,以便我知道插入审核记录?
非常感谢!
答案 0 :(得分:3)
+1 kvalcanti所说的......这是另一篇文章,我认为它解释得好一点(并告诉你如何在没有XML配置的情况下做到这一点!)。我正在做这个人在我的项目上做的事情,而且它的工作非常好。
http://www.codinginstinct.com/2008/04/nhibernate-20-events-and-listeners.html
警告:我没有在我的项目中插入需要在此事件中保存的新对象,我认为这不会是一个问题,但我不能肯定地说,因为我没有完全按照你做的那样做正在做。
答案 1 :(得分:3)
我发布了这个问题的最终解决方案,并认为我会分享
http://robtennyson.us/post/2009/08/23/NHibernate-Interceptors.aspx
答案 2 :(得分:0)