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