2

コードによるマッピングを使用してこれらのエンティティをマッピングするにはどうすればよいですか?

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; }
}

このスレッドを見つけましたが、エンティティをマップせず、単純なタイプのみをマップします。自動マッピングを含む多くのマッピングを試しました。

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

しかし、それらのほとんどは次の2つのエラーをスローします。

  1. 外部キー(Bars [idx]))には、参照される主キー(Bars [FooId、idx])と同じ数の列が必要です。
  2. テーブルFoosToStringsからの関連付けは、マップされていないクラスSystem.Stringを参照します。

どんな助けでも大歓迎です。ありがとう。:)

4

1 に答える 1

0

私はこれがうまくいくと思う

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")));
于 2013-12-05T14:22:29.017 に答える