我还有一个问题。我升级到FluentNHibernate,现在得到了 我的dicitionary映射的问题。
我尝试映射的类具有以下属性
IDictionary LohnParameter
映射如下
HasMany(x => x.LohnParameter)
.ForeignKey("cat_condition_version__id")
.DictionaryKey("wrd_cntry__id")
.OneToMany<boLohnartEigenschaften>()
.Not.Lazy()
.Inverse()
.Cascade.AllDeleteOrphan();
生成的hbm.xml如下所示:
<map cascade="all-delete-orphan" inverse="true" lazy="false" name="LohnParameter" table="boLohnartVersionLohnParameter" mutable="true">
<key>
<column name="cat_condition_version__id" />
</key>
<index-many-to-many class="proSoft.Office.Model.Business.Welt.boLand, proSoft.Office.Model.Business, Version=0.1.19.20243, Culture=neutral, PublicKeyToken=b0e4f89242e69335">
<column name="wrd_cntry__id" />
</index-many-to-many>
<one-to-many class="proSoft.Office.Model.Business.Konditionen.boLohnartEigenschaften, proSoft.Office.Model.Business, Version=0.1.19.20243, Culture=neutral, PublicKeyToken=b0e4f89242e69335" />
</map>
使用新版本,编译器会抱怨该属性 “ForeignKey”丢失了。我现在尝试了一切,但我无法理解 好好工作。我的最后一次尝试是:
HasMany(x => x.LohnParameter)
.AsMap<boCountry>(
index => index.Column("wrd_cntry__id").Type<boCountry>(),
element => element.Type<boLohnartEigenschaften>()
)
.KeyColumn("cat_condition_version__id")
.Not.LazyLoad()
.Inverse()
.Cascade.AllDeleteOrphan();
但我总是得到的错误是:
{“无法确定类型: proSoft.Office.Model.Business.Welt.boCountry, proSoft.Office.Model.Business,Version = 0.1.14.556,Culture = neutral, PublicKeyToken = b0e4f89242e69335,用于列: NHibernate.Mapping.Column(wrd_cntry__id)“}
我不知道该做什么。
问候
Christian Erhardt
答案 0 :(得分:1)
我想你在寻找这个
HasMany(x => x.LohnParameter)
.AsEntityMap("wrd_cntry__id")
答案 1 :(得分:0)
谢谢你的提示,这是正确的方法。正确的映射是:
HasMany(x => x.LohnParameter)
.KeyColumn("cat_condition_version__id")
.AsEntityMap("wrd_cntry__id")
.Not.LazyLoad()
.Inverse()
.Cascade.AllDeleteOrphan();
这会产生完全相同的hbm.xml文件。
谢谢!