Как запрашивать коллекции в NHibernate - PullRequest
0 голосов
/ 31 марта 2010

У меня есть класс:

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>

Так что теперь я могу добавить множество атрибутов и значений для пользователя. Как я могу запросить эти атрибуты, чтобы я мог получить то есть. Получить всех пользователей, где имя атрибута равно «Возраст», а значение атрибута равно «20»? Я не хочу делать это в foreach, поскольку у меня могут быть миллионы пользователей, каждый из которых имеет свои уникальные атрибуты.

Пожалуйста, помогите

1 Ответ

0 голосов
/ 31 марта 2010

Вы можете сделать это, используя HQL.

Например:

from User u join u.Attributes attr
where index(attr) = 'Age' and attr = '20'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...