如何在NHibernate中查询集合

如何在NHibernate中查询集合,nhibernate,dictionary,map,Nhibernate,Dictionary,Map,我有一门课: public class User { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IDictionary<string, string> Attributes { get; set; } } 和映射文件: <class name="User" table="Users"> <id

我有一门课:

public class User
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual IDictionary<string, string> Attributes { get; set; }
}
和映射文件:

<class name="User" table="Users">
    <id name="Id">
        <generator class="hilo"/>
    </id>
    <property name="Name"/>

    <map name="Attributes" table="UserAttributes">
        <key column="UserId"/>
        <index column="AttributeName" type="System.String"/>
        <element column="Attributevalue" type="System.String"/>
    </map>
</class>
因此,现在我可以向用户添加许多属性和值。 如何查询这些属性以便获得ie。 获取attributename为Age且属性值为20的所有用户? 我不想在foreach中这样做,因为我可能有数百万用户,每个用户都有其独特的属性


请帮助

您可以使用HQL来完成

例如:

from User u join u.Attributes attr
where index(attr) = 'Age' and attr = '20'