Para variar, acá tenés una versión que además implementa
IDictionary<TIdentity, TEntity>: http://gist.github.com/459517
<http://gist.github.com/459517>Nada nuevo, desde ya; es sólo para mostrar
una semantica extendida.
Diego
2010/7/21 Pardety <[email protected]>
> Muchas gracias ya veo por donde va la cosa.
>
> On 21 jul, 06:27, Fabio Maulo <[email protected]> wrote:
> > tirá de estehttp://
> fabiomaulo.blogspot.com/2009/09/repository-or-dao-repository.html
> >
> > <
> http://fabiomaulo.blogspot.com/2009/09/repository-or-dao-repository.html>y
> > luego de estehttp://
> fabiomaulo.blogspot.com/2010/07/enhanced-query-object.html
> >
> > <http://fabiomaulo.blogspot.com/2010/07/enhanced-query-object.html>y lee
> > bien lo que dicen.
> >
> > 2010/7/20 Pardety <[email protected]>
> >
> >
> >
> >
> >
> > > ¡Gracias Edgar!
> > > Por lo menos un hilo del que tirar...
> >
> > > On 21 jul, 00:01, Edgar Ramos <[email protected]> wrote:
> > > > Para lo que comentas, estoy revizando este frameworkhttp://
> > > 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 <[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
> >
> > --
> > Fabio Maulo
>
> --
> 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