#nhibernate
#nhibernate
Вопрос:
Это мой класс модели.
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:
Не уверен, будет ли это работать с observable collection (возможно, потребуется отобразить как 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>