2009-04-01 9 views
2

J'ai ce mappage de table (détails ne je pense pas vraiment):NHibernate Tableau de mise à jour de l'événement

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(); 
... 

La raison de celle à une table est pour des raisons de vérification. Il y a une table FACIL_OTH_AUDIT_INFO_HIST qui devrait obtenir un enregistrement pour chaque insertion et mise à jour dans la table principale.

Ma question: Comment puis-je savoir quand une insertion ou une mise à jour se produit dans cette table afin que je sache insérer un enregistrement d'audit?

Merci beaucoup!

Répondre

3

+1 à ce que kvalcanti dit ... voici un autre poste que je pense, explique un peu mieux si (et vous montre comment le faire sans configuration XML!). Je fais ce que ce type fait sur mon projet et ça marche très bien.

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

caveat: Je ne suis pas insérer de nouveaux objets qui doivent être enregistrés dans cet événement dans mon projet, que je suppose ne sera pas un problème, mais je ne peux pas dire que depuis que je Je ne fais pas exactement ce que tu fais.

Questions connexes