Todavía no lo sé, pero digamos que sí. Estoy implementando el
repositorio base.

On 21 jul, 00:06, José F. Romaniello <[email protected]> wrote:
> Osea que el contexto de tu transacción equivale a un método en el
> repositorio:
>
> Repositorio
>   Guardar( entidad)
>     Abrir Transaccion
>     session.Save(...)
>     Commit  o Rollback
> ?
>
> El 20 de julio de 2010 18:50, Pardety <[email protected]> escribió:
>
>
>
> > Cuando digo evidente me refiero que la acción en sí está definida. Se
> > que objeto voy a borrar o guardar. Con la consulta linq todavía no se
> > cual es la expresión de la query, si lo que persigo es poder usar linq
> > en mi capa de negocio y evitar los repositorios tipo
> > GetByNameAndStreet.
> > Si se va a guardar se abre una transacción, se llama al método save y
> > se hace un commit ¿Pongo lo del try catch el rollback....?
> > Si se hace una consulta usando ICriteria, igual, la llamada a la base
> > de datos queda encapsulada. La pregunta es respecto a  consultas
> > usando linq, o al menos usando esta implementación, ¿como se hace?.
> > ¿Añadiendo métodos al repositorio para que abra y cierre
> > transacciones? ¿En este caso no se usan?
>
> > saludos
>
> > On 20 jul, 13:47, José F. Romaniello <[email protected]> wrote:
> > > cual es la forma evidente de manejar los ámbitos de transacciones? Me
> > > gustaría ver aunque sea en pseudocódigo como lo pondrías vos.
>
> > > El 20 de julio de 2010 04:26, Jose Manuel Pardo Godoy
> > > <[email protected]>escribió:
>
> > > > Hola a todos
>
> > > > Estoy dando mis primeros pasos con nhibernate y me surge la siguiente
> > duda.
> > > > He visto implementaciones de repositorios que implementan (perdón por
> > la
> > > > redundancia) el interfaz IQueryable y hacen uso del nhlinq.
> > > > Mi pregunta es ésta:
> > > > Dentro de las buenas prácticas se recomienda que hay que encapsular
> > todas
> > > > las acciones dentro de una transacción,con operaciones de borrado y
> > > > actualización es evidente como realizar esta encapsulación., pero ¿Cómo
> > > > hacerlo cuando se usa linq para consultas?
>
> > > > Esta es la implementación de mi repositorio  de solo lectura,
>
> > > >   public class Repository<T> : IRepository<T> where T : IEntity
>
> > > >     {
> > > >         private readonly ISessionFactory _sessionFactory;
>
> > > >         protected Repository(ISessionFactory sessionFactory)
>
> > > >         {
> > > >             _sessionFactory = sessionFactory;
> > > >         }
>
> > > >         public Expression Expression
>
> > > >         {
> > > >             get
> > > >             {
> > > >                 return
> > _sessionFactory.GetCurrentSession().Linq<T>().Expression;
>
> > > >             }
> > > >         }
>
> > > >         public Type ElementType
> > > >         {
>
> > > >             get { return
> > _sessionFactory.GetCurrentSession().Linq<T>().ElementType; }
>
> > > >         }
>
> > > >         public IQueryProvider Provider
> > > >         {
> > > >             get { return
> > _sessionFactory.GetCurrentSession().Linq<T>().Provider; }
>
> > > >         }
>
> > > >         public IEnumerator<T> GetEnumerator()
>
> > > >         {
> > > >             return
> > _sessionFactory.GetCurrentSession().Linq<T>().GetEnumerator();
>
> > > >         }
>
> > > >         IEnumerator IEnumerable.GetEnumerator()
>
> > > >         {
> > > >             return GetEnumerator();
> > > >         }
> > > >     }
>
> > > > Gracias por anticipado
>
> > > > --
> > > > Saludos
>
> > > > José M. Pardo
>
> > > > --
> > > > Para escribir al Grupo, hágalo a esta dirección:
> > > > [email protected]
> > > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> > [email protected]
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a