Je développe une application Web dans ASP.NET MVC avec NHibernate.Comment créer un référentiel générique
Basé sur des articles et des tutoriels que j'ai trouvés sur Google, j'utilise Repository pour mes cours.
J'ai 10 classes et 10 dépôts. Aujourd'hui, j'ai compris que 90% des dépôts miniers sont exactement égaux, sauf pour la classe. Ceci est un exemple:
public class PromocaoRepository:IPromocaoRepository {
private ISession Session;
public PromocaoRepository() {
this.Session = NHibernateSessionFactory.OpenSession();
}
public void Add(Promocao promocao) {
using(ITransaction transaction = this.Session.BeginTransaction()) {
this.Session.Save(promocao);
transaction.Commit();
}
}
public void Edit(Promocao promocao) {
using(ITransaction transaction = this.Session.BeginTransaction()) {
this.Session.Update(promocao);
transaction.Commit();
}
}
public void Remove(Promocao promocao) {
using(ITransaction transaction = this.Session.BeginTransaction()) {
this.Session.Delete(promocao);
transaction.Commit();
}
}
public Promocao GetById(int id) {
return this.Session.Get<Promocao>(id);
}
}
Il y a une façon de faire une sorte de sorcière de référentiel générique je peux utiliser dans tous mes cours?
Si c'est possible, que dois-je faire au cas où je devrais créer une méthode particulière pour une classe spécifique?
duplication possible de [Utilisation d'un modèle de référentiel générique avec nHibernate fluide] (http://stackoverflow.com/questions/2587965/using-a-generic-repository-pattern-with-fluent-nhibernate) - comme vous pouvez le voir 75% des réponses sont liées à une réponse existante – jfar