nHibernate и модели с простыми массивами - PullRequest
0 голосов
/ 04 мая 2011

Это мой модельный класс.

public class Lead
{
    private readonly ObservableCollection<String> m_tags = new ObservableCollection<string>();

    public int LeadId { get; set; }
    public string Title { get; set; }
    public ObservableCollection<String> Tags { get { return m_tags; } }

}

Предлагает ли nHibernate способ представить это, поддерживая простой публичный API модели?

1 Ответ

1 голос
/ 04 мая 2011

Не уверен, что он будет работать с наблюдаемой коллекцией (возможно, потребуется отобразить как IList и обработать это за кулисами), но я думаю, что вам нужно сделать что-то подобное в вашем отображении:

<class name="Lead" table="Lead">
   <!-- snip -->
   <set name="Tags" table="Tags">
       <key column="TagId" />
       <element column="TagValue" type="string" />
   </set>
</class>

Единственным недостатком является то, что для значений тегов требуется таблица с ключами.

Однако я беспокоюсь, что один и тот же тег может появляться в нескольких отведениях.Если это так, я думаю, вы захотите определить теги как многие ко многим с промежуточной таблицей.Это будет выглядеть примерно так (требуется объект для вашего тега):

<class name="Lead" table="Lead">
       <!-- snip -->
    <set name="Tags" table="LeadsXTags" lazy="false" fetch="select" cascade="save-update">
        <key column="LeadId"></key>
        <many-to-many class="Tag" column="TagId"></many-to-many>
    </set>
</class>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...