这是我的模特课。
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?
答案 0 :(得分:1)
不确定它是否适用于可观察集合(可能需要映射为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>