2011-09-16 6 views
0

もう1つ質問があります。私はFluentNHibernateにアップグレードして、私のdicitionaryマッピングで の問題が発生しました。最新のfluentNHibernateバージョンでこの辞書をどのようにマッピングするのですか?

マップしようとしたクラスi'amは、次のプロパティ

たIDictionary LohnParameterを持って

結果のhbm.xmlはこのようになります

HasMany(x => x.LohnParameter) 
    .ForeignKey("cat_condition_version__id") 
    .DictionaryKey("wrd_cntry__id") 
    .OneToMany<boLohnartEigenschaften>() 
    .Not.Lazy() 
    .Inverse() 
    .Cascade.AllDeleteOrphan(); 

次のようにマッピングは次のとおりです。

<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、バージョン= 0.1.14.556、文化=中立、 なPublicKeyToken = b0e4f89242e69335、列のために: NHibernate.Mapping.Column(wrd_cntry__id) "}

私は何をすればいいの手掛かりを持っていません。私はあなたがこの

HasMany(x => x.LohnParameter) 
    .AsEntityMap("wrd_cntry__id") 

答えて

1

はそれが正しい方法だった、ヒントをいただき、ありがとうございます。正しいマッピングは次のとおりです。

 HasMany(x => x.LohnParameter) 
     .KeyColumn("cat_condition_version__id") 
     .AsEntityMap("wrd_cntry__id")   
     .Not.LazyLoad() 
     .Inverse() 
     .Cascade.AllDeleteOrphan(); 

この結果、正確に同じhbm.xmlファイルになります。

ありがとうございました!

+0

ありがとう、これは私が必要なヒントでした! – MoJo2600

0

を探して考える

よろしく

クリスチャンErhardt

関連する問題