Otra forma sería mapear así:
<class name="User" table="Users">
<id name="Id">
<generator class="hilo"/>
</id>
<property name="UserName"/>
<property name="FirstName"/>
<property name="LastName"/>
<map name="Attributes" table="UserAttributes">
<key column="UserId"/>
<index column="AttributeName" type="System.String"/>
<element column="Attributevalue" type="System.String"/>
</map>
</class>
La clase tiene esta pinta:
public class User
{
public Usuer() { Attributes = new Dictionary<string, string>() }
public virtual int Id { get; private set; }
public virtual string Username { get; set; }
public virtual string FirstName { get; set; }
public virtual string LastName { get; set; }
public virtual IDictionary<string, string> Attributes {get; private
set;}
}
y consultar así:
from User u
where u.Attributes['Sexo'] = 'F'
and u.Attributes['Edad'] ....
ojo con edad, creo que deberías castearlo ya que estas guardando números
como string ;)
Pero creo que esta forma es mucho mas sencillo y requiere menos código.
Más sobre <map />
http://ayende.com/Blog/archive/2009/06/03/nhibernate-mapping-ndash-ltmapgt.aspx
El 28 de febrero de 2011 10:50, Gustavo Garcia <[email protected]> escribió:
> Hola Diego,
> Probaré con tu idea, pero tenía entendido que con los JOIN la consulta era
> más rápida, o no? pues tengo algo asi como 600000 usuarios (eso es harto o
> poco? :s)
> Te aviso como me va!
>
> Muchas gracias de todas maneras
>
> --
> 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