Hola,
Debes incluir en el criteria la asociacion con " CreateCriteria o
CreateAlias " creo que seria algo como:
sesion.CreateCriteria<SubfamiliaModel>()..CreateAlias("FamiliaPadre").Add(Expression.Eq("Url_es_ES",
Familia_URL)).List<SubfamiliaModel>();
o
sesion.CreateCriteria<SubfamiliaModel>()..CreateAlias("FamiliaPadre","fp").Add(Expression.Eq("fp.Url_es_ES",
Familia_URL)).List<SubfamiliaModel>();
Puedes ver este
link<http://www.nhforge.org/doc/nh/en/index.html#querycriteria>tambien.
2012/4/11 [email protected] <[email protected]>
> Hola Raúl, creo es posible con Criteria pero en este momento no recuerdo
> como...
>
> antes de llegar a SQL, te recomiendo que pruebes con HQL o, en NH3,
> con QueryOver utilizando JoinQueryOver
> (
> http://nhforge.org/blogs/nhibernate/archive/2009/12/17/queryover-in-nh-3-0.aspx
> ).
>
> saludos.
> nelo
>
> On Wed, Apr 11, 2012 at 5:56 PM, Raúl <[email protected]> wrote:
> > Hola Edgar, en primer lugar, muchas gracias por tu aporte.
> >
> > Lamentandolo mucho, no me ha funcionado como dices :(
> >
> >
> > He conseguido que funcione de una forma, pero no me termina de gustar
> > ya que debo definir una sentencia SQL entera:
> >
> > var p = sesion.CreateSQLQuery(@"SELECT * FROM Subfamilias sf INNER
> > JOIN familias fm ON sf.familia = fm.id WHERE fm.url_es_ES
> > = :url").SetParameter("url", Familia_URL).List();
> >
> >
> > No sé si no es posible crear dicho filtro con el CreateCriteria
> >
> >
> >
> > On 11 abr, 22:23, Edgar Ramos <[email protected]> wrote:
> >> Perdon no lei bien la pregunta
> >>
> >> Prueba en el archivo de mapeo lo siguiente
> >>
> >> <many-to-one name="FamiliaPadre" class="FamiliaModel" column="familia"
> />
> >>
> >> Saludos
> >> Edgar
> >>
> >> El 11 de abril de 2012 15:16, Edgar Ramos <[email protected]>
> escribió:
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> > Mira si en el archivo de mapeo de FamiliaModel, tienes definida la
> >> > propiedad con el error
> >>
> >> > Saludos
> >> > Edgar
> >>
> >> > El 11 de abril de 2012 14:42, Raúl <[email protected]> escribió:
> >>
> >> > Hola!
> >>
> >> >> Estoy iniciandome en el mundo de NHibernate, y se me presenta un
> >> >> problema:
> >>
> >> >> Tengo dos clases: Familia y Subfamilia
> >>
> >> >> public class FamiliaModel
> >> >> {
> >> >> public virtual string Id { get; set; }
> >> >> public virtual string Nombre { get; set; }
> >> >> public virtual string Url_es_ES { get; set; }
> >> >> public virtual string Url_ca_ES { get; set; }
> >> >> public virtual string Url_en_GB { get; set; }
> >> >> }
> >>
> >> >> public class SubfamiliaModel
> >> >> {
> >> >> public virtual int Id { get; set; }
> >> >> public virtual string Nombre { get; set; }
> >> >> public virtual string Url_es_ES { get; set; }
> >> >> public virtual string Url_ca_ES { get; set; }
> >> >> public virtual string Url_en_GB { get; set; }
> >>
> >> >> public virtual FamiliaModel FamiliaPadre { get; set; }
> >> >> }
> >>
> >> >> En el archivo XML de mapeo de la subfamilia, tengo además esta linea:
> >>
> >> >> <many-to-one name="FamiliaPadre" column="familia" />
> >>
> >> >> Bien, hecho esto, necesito listar todas las subfamilias, cuya url sea
> >> >> la que le pase a la funcion. Es decir:
> >>
> >> >> public List<SubfamiliaModel> ListarSubfamilias(string
> >> >> Familia_URL)
> >> >> {
> >> >> return
> >>
> >> >>
> sesion.CreateCriteria<SubfamiliaModel>().Add(Expression.Eq("FamiliaPadre.Ur
> l_es_ES",
> >> >> Familia_URL)).List<SubfamiliaModel>();
> >> >> }
> >>
> >> >> No sé si debo establecer algo mas, o proporcionaros un poco más de
> >> >> información, pero el caso es que me da el siguiente error:
> >>
> >> >> Could not resolve property: FamiliaPadre.Url_es_ES of:
> SubfamiliaModel
> >>
> >> >> Alguna idea?
> >>
> >> >> Un saludo y gracias :)
> >>
> >> >> --
> >> >> Para escribir al Grupo, hágalo a esta dirección:
> >> >> [email protected]
> >> >> Para más, visite:http://groups.google.com/group/NHibernate-Hispano
> >>
> >> > --
> >> > Saludos
> >> > Edgar
> >>
> >> --
> >> Saludos
> >> Edgar
> >
> > --
> > 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