1
我正在從xml映射轉移到基於代碼的映射。我遇到了NHibernate Map集合的問題。NHibernate映射代碼映射集合
下面是XML映射這完美工作(它是有點簡化,有實際上更多的屬性和集合):
我想出<class name="Company" where="IsDeleted=0" lazy="false">
<id name="Id">
<generator class="guid"></generator>
</id>
<map name="Contacts" lazy="true" cascade="all" where="IsDeleted=0">
<key column="CompanyId"></key>
<index column="Id" type="guid"></index>
<one-to-many class="CompanyContact"/>
</map>
</class>
的交替代碼映射是下一個:
public CompanyMap()
{
Id(x => x.Id, mapper => mapper.Generator(Generators.Guid));
Map(x => x.Contacts,
m =>
{
m.Where(FILTER);
m.Cascade(Cascade.All);
m.Lazy(CollectionLazy.Lazy);
m.Key(c => c.Column("CompanyId"));
}, k =>
{
k.Element(e =>
{
e.Column("Id");
});
k.OneToMany(e => e.Class(typeof(CompanyContact)));
});
}
上面產生下一hbml在地圖:
<map name="Contacts" lazy="true" cascade="all" where="IsDeleted=0">
<key column="CompanyId" />
<map-key type="Guid" />
<one-to-many class="CompanyContact" />
</map>
我顯然這裏缺少索引欄。因此,在生成SQL時,nhibernate將使用idx爲DefaultIndexColumnName。
所以問題是我將如何設置地圖索引?
更新: 根據hibernate文檔,我應該使用map-key。 因此,重新說明這個問題,我將如何設置map-key的列屬性?
任何鏈接到創建的問題? –
https://nhibernate.jira.com/browse/NH-3205 –