jueves, 17 de septiembre de 2015

Repository.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Migration.Target.Dao.Entities;
using Migration.Target.Dao.UnitOfWork;
using NHibernate;
using NHibernate.Linq;

namespace Migration.Target.Dao.Repositories
{
    public class Repository<TEntity>
        where TEntity : Entity
    {
        protected NHibernateContextSql GetDbContext()
        {
            NHibernateContextSql dbContext = NHibernateContextSql.ResolveInstance();
            return dbContext;
        }


        #region Miembros de IEntityRepository<TEntity>

        public TEntity Get(long id)
        {
            NHibernateContextSql dbContext = this.GetDbContext();
            ISession session = dbContext.Session;
            return session.Get<TEntity>(id);
        }


        public IQueryable<TEntity> GetQuery()
        {
            NHibernateContextSql dbContext = this.GetDbContext();
            ISession session = dbContext.Session;
            IQueryable<TEntity> queryBase = session.Query<TEntity>();
            return queryBase;
        }

        public TEntity Create(TEntity entity)
        {
            NHibernateContextSql dbContext = this.GetDbContext();
            ISession session = dbContext.Session;
            entity = session.Save(entity) as TEntity;
            return entity;
        }

        public TEntity Update(TEntity entity)
        {
            NHibernateContextSql dbContext = this.GetDbContext();
            ISession session = dbContext.Session;
            session.Update(entity);
            return entity;
        }

        public TEntity Delete(TEntity entity)
        {
            NHibernateContextSql dbContext = this.GetDbContext();
            ISession session = dbContext.Session;
            session.Delete(entity);
            return entity;
        }

        #endregion
    }
}

No hay comentarios:

Publicar un comentario