Para lo que comentas, estoy revizando este framework
http://linqspecs.codeplex.com/, el cual implementa specification
pattern, si descargas el codigo (con su ejemplo), podrás analizar
justamente lo que comentas, en el ejemplo que expone, esta
repository+nh

Saludos

Edgar

El día 20 de julio de 2010 16:50, Pardety <jmpa...@gmail.com> 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 <jfromanie...@gmail.com> 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
>> <jmpa...@gmail.com>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:
>> > NHibernate-Hispano@googlegroups.com
>> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> --
> Para escribir al Grupo, hágalo a esta dirección: 
> NHibernate-Hispano@googlegroups.com
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano

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

Responder a