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