15 Stimmen

Datenüberprüfung in NHibernate und SqlServer

Ich verwende NHibernate in einem Projekt und muss eine Datenüberprüfung durchführen. Ich fand 本論文 auf codeproject, in dem die Schnittstelle IInterceptor behandelt wird.

Was ist Ihre bevorzugte Methode zur Prüfung von Daten? Verwenden Sie Datenbank-Trigger? Verwenden Sie etwas Ähnliches wie das, was in diesem Artikel beschrieben wird?

2voto

kͩeͣmͮpͥ ͩ Punkte 7635

Ein völlig anderer Ansatz ist die Verwendung des Dekorationsmusters für Ihre Repositories.

Sagen wir, ich habe

public interface IRepository<EntityType> where EntityType:IAuditably
{ 
    public void Save(EntityType entity);
}

Dann hätten wir unser NHibernateRepository:

public class NHibernateRepository<EntityType>:IRepository<EntityType>
{
   /*...*/
   public void Save ( EntityType entity )
   {
       session.SaveOrUpdate(entity);
   }
}

Dann könnten wir ein Auditing Repository einrichten:

public class AuditingRepository<EntityType>:IRepository<EntityType>
{
   /*...*/
   public void Save ( EntityType entity )
   {
       entity.LastUser = security.CurrentUser;
       entity.LastUpdate = DateTime.UtcNow;
       innerRepository.Save(entity)
   }
}

Mit einem IoC-Framework (StructureMap, Castle Windsor, NInject) könnten Sie dann alles aufbauen, ohne dass der Rest Ihres Codes je erfährt, dass Sie Auditing betreiben.

O

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X