NHibernate: отображение результатов запроса в свойство списка в файле отображения - PullRequest
1 голос
/ 22 января 2011

У меня есть класс Contact, и я хочу предоставить пользователям автозаполнение для города и провинции.

Я подумал, что создал две коллекции в объекте Contact и загрузил в них города и провинции из таблицы контактов.:

public class Contact {  
    public virtual string Name { get; set; }  
    public virtual string City { get; set; }  
    public virtual string Province { get; set; }  
    public virtual IList<String> Cities { get; set; }  
    public virtual IList<String> Provinces { get; set; }  
}

И файл сопоставления выглядит так:

<class name="Contact">  
    <id name="Id">  
        <generator class="native">  
            <param name="sequence">contact_id_seq</param>  
        </generator>  
    </id>  
<property name="Name" />  
<property name="City" />  
<property name="Province" />  
<property name="Cities" type="string" formula="SELECT DISTINCT city FROM contact" />  
<property name="Provinces" type="string" formula="SELECT DISTINCT province FROM contact" />  
</class>

Но это не работает.Есть ли способ, которым это может быть достигнуто?

Спасибо.

1 Ответ

0 голосов
/ 22 января 2011

формула для свойства - это выражение SQL, которое определяет значение для свойства, поэтому выборка должна возвращать одно значение.Кроме того, работая так, как вы предлагали, вы продублируете эти значения для каждой сущности, возможно, лучше определить ее как статический список и заполнить значение пользовательским hql, например, при создании нового сеанса.

...