Dépôt NHibernate

Quelqu’un a-t-il une rédaction correcte et simplifiée sur le référentiel NHibernate? J’ai utilisé les référentiels Java, Hibernate, LCDS DataService avec FlexBuilder (en utilisant la canalisation rtmp) et je souhaite implémenter la fondamentale exacte avec C # .NET.

J’ai parcouru de nombreux documents en ligne, mais rien ne reflétait exactement l’utilisation, comme avec FlexBuilder.

Si quelqu’un a un petit exemple d’application, partagez-le. Ce serait très utile.

Cordialement Nitin

Voir ces:

  • Accès aux données avec NHibernate

  • Modèle de référentiel dans NHibernate

Commencez par créer une interface IRepository :

 public interface IRepository { int Add(T entity); void Delete(T entity); void Update(T entity); T GetById(int id); IEnumerable FindAll(DetachedCriteria criteria); ... . . // } 

Puis implémentez cette interface comme suit:

  public class Repository : IRepository { readonly IActiveSessionManager _activeSessionManager; protected ISession Session { get { return _activeSessionManager.GetActiveSession(); } } public Repository(IActiveSessionManager activeSessionManager) { _activeSessionManager = activeSessionManager; } public int Add(T entity) { int newId = (int)Session.Save(entity); Session.Flush(); return newId; } . . // add the remaining implementations } 

L’implémentation de ActiveSessionManager et de SessionProvider est très simple et vous pouvez la trouver dans les liens précédents.

Vous pouvez exposer vos méthodes comme suit:

  public T FindOne(NHibernate.Criterion.DetachedCriteria criteria) { return criteria.GetExecutableCriteria(Session).UniqueResult(); } 

Ensuite:

 public class EntityRepository : Repository { public EntityRepository(IActiveSessionManager activeSessionManger) : base(activeSessionManger) { } public Entity GetByName(ssortingng name) { var criteria = NHibernate.Criterion.DetachedCriteria.For() .Add(Ressortingctions.Eq("name", name)); return FindOne(criteria); } public IList returnsomething() { } .... } 

Ceci est une implémentation de base pour ce modèle, mais vous pouvez le décorer selon votre conception.

Vous pouvez aller plus loin, je recommande, après avoir compris ces motifs et les mettre en œuvre, en consultant NHibernate et le modèle d’unités de travail.