Je cherche à obtenir des commentaires sur la façon dont je peux améliorer mon design. Plus précisément, je ne veux pas avoir à créer un nouvel objet de référentiel pour chacun de mes objets de domaine, mais je ne veux pas non plus réécrire la logique de session et de transaction à plusieurs reprises.Nhibernate Architecture - Référentiel Nhibernate générique pour servir de nombreux types différents
Pour atténuer le besoin d'écrire le code pour obtenir une nouvelle session et transation pour chaque transaction de base de données que je fais que j'ai créé et classe abstraite générique qui ressemble à ceci:
public class AbstractNHibernate<T> where T : class
{
public void Add<T>(T entity)
{
using(ISession session = NHibernateHelper.OpenSession())
using (ITransaction transaction = session.BeginTransaction())
{
session.Save(entity);
transaction.Commit();
}
}
}
Cest très grande, mais je dois créer un référentiel pour chacune de mes entités de domaine comme suit:
public class ConnectionModel : AbstractNHibernate<Connection>
{
public void SaveConnection(Connection conn)
{
Add(conn);
}
}
Je pourrais potentiellement avoir beaucoup de ceux-ci. Quelqu'un peut-il suggérer une approche différente?
Merci d'avance.
pourquoi toutes les sessions reconnexions et déconnexions? – dbones
J'ai eu la même question que dbones. – Nick
Aucune bonne raison.Les déconnexions et les reconnexions immédiates et explicites autour de chaque action sont une exigence de politique qui vient d'un DBA qui est très anti-ORM et qui a essayé d'écraser tout le concept. Il a été renversé sur cela mais a eu assez de poids politique pour imposer quelques règles (souvent absurdes) sur le développement. Désolé pour toute confusion, après un moment, il devient l'habitude de faire les choses de cette façon. – Sisyphus