Lo acabo de encontrar en
http://knol.google.com/k/fabio-maulo/nhibernate-chapter-13-criteria-queries/1nr4enxv3dpeq/16#

*You can even use examples to place criteria upon associated objects.*

*IList results = session.CreateCriteria(typeof(Cat))    *
*.Add( Example.Create(cat) )    *
*.CreateCriteria("Mate")        *
*.Add( Example.Create( cat.Mate ) )    *
*.List();*

Quizá a alguien le sirva.
Gracias.

El día 13 de octubre de 2010 10:21, Nicolás Marzoni <[email protected]>
escribió:
> Buen día a todos.
>
> Estoy realizando una consulta utilizando Nhibernate.Criterion.Example.
> Lo hago de la siguiente manera
>
> public IList GetByExample(object exampleInstance, string[]
propertiesToExclude)
>        {
>            ICriteria criteria =
> Session.CreateCriteria(exampleInstance.GetType());
>            Example example = Example.Create(exampleInstance);
>            example.EnableLike(MatchMode.Start);
>            example.IgnoreCase();
>            foreach (string propertyToExclude in propertiesToExclude)
>            {
>                example.ExcludeProperty(propertyToExclude);
>            }
>            criteria.Add(example);
>
>            return criteria.List();
>        }
>
> Todo funciona bien, salvo cuando seteo valores a una relación, donde
> parece no son tomados en cuenta.
>
> Por ejemplo:
>
> Campo tiene una propiedad many-to-one con Localidad, y quiero obtener
> todos los Campos donde el nombre de la localidad comience con Mar.
>
> Entonces
>
> private IList<Campo> ObtenerRegistrosFiltrados()
>        {
>            List<string> excepciones = new List<string>();
>            Campo campoEjemplo = new Campo();
>
>            Localidad localidadEjemplo = new Localidad();
>            localidadEjemplo.Nombre = txtNombreLocalidad.Text;
>            campoEjemplo.Localidad = localidadEjemplo;
>
>            foreach (System.Reflection.PropertyInfo propertyInfo in
> campoEjemplo.GetType().GetProperties())
>            {
>                if ((propertyInfo.Name != "Nombre")
>                    && (propertyInfo.Name != "Localidad"))
>                    excepciones.Add(propertyInfo.Name);
>            }
>
>            return GetByExample(campoEjemplo, excepciones.ToArray());
>        }
>
> Es posible hacer esto? Que me está faltando?
>
> Estoy utilizando la versión 2.1.2.400 de NHibernate.
>
> Muchas Gracias.
>
> --
> Nicolás Matías Marzoni
>



-- 
Nicolás Matías Marzoni

-- 
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