2012-03-26 4 views
2

どのようにマッピング・バイ・コードを使用して、これらのエンティティをマッピングすることができます。コードによるNHibernateマッピング:IDictionaryのマッピング方法?

public class Foo 
{ 
    public virtual IDictionary<Bar, string> Bars { get; set; } 
} 

public class Bar 
{ 
    public virtual int Id { get; set; } 
    public virtual string Name { get; set; } 
} 

私はthis threadを見つけたが、それは、単純なタイプのエンティティをマッピングしません。

Map(x => x.Bars, 
    m => 
    { 
     m.Key(k => k.NotNullable(true)); 
     m.Cascade(Cascade.All); 
    }, 

しかし、それらのほとんどは、これら2つのエラーをスロー:

  1. 外部キーを(バーが[IDX]))参照される主キーと同じ数の列を持っている必要があります私は自動マッピングを含め、多くのマッピングを試してみました(バー[FooId、idx])。
  2. FoosToStringsテーブルからの関連付けは、マップされていないクラスSystem.Stringを参照します。

ご協力いただければ幸いです。ありがとう。 :)

+0

動作するはずだと思います。この関連する問題を回避策で確認してください。 http://stackoverflow.com/questions/8542298/fluent-nhibernate-index-many-to-many。 –

+0

私はFluentを使用していません。私はコードによるマッピングを使用しています。 – Yogesh

+0

お詫び申し上げます。より詳しく質問を読む必要があります。 –

答えて

0

私は、これはこれは、インデックス、多くの-to-anyの私はFluentNHibernateでいくつかの問題があると考えていマッピングに変換

Map(x => x.Bars, 
    entryMap => entryMap.Key(k => k.Column("foo_id")), 
    keymap => keymap.ManyToMany(m => m.Column("bar_Id")), 
    elementMap => elementMap.Element(m => m.Column("value"))); 
関連する問題