0

次のように、Dictionary型のプロパティとDictionary型の値を持つクラスのマッピングを作成する際に問題があります。

  public class Class1
  {
    public virtual int Id { get; set; }

    public virtual IDictionary<DayOfWeek, IDictionary<int, decimal>> Class1Dictionary { get; set; }
  }

私のマッピングは次のようになります。

Id(i => i.Id);
HasMany(m => m.Class1Dictionary);

これは機能しません。私が欲しい重要なことは、2つではなく1つのテーブルにすべてを持っていることです。この2番目のIDictionaryからクラスを作成したとき、私はより大きな問題を抱えています。しかし、最初は今のように試すことができます。

4

1 に答える 1

1

現在、NHibernateではどのタイプのネストされたコレクションも使用できません。

代わりに、プロパティを次のように定義する必要があります。

public virtual IDictionary<DayOfWeek, Class2> Class1Dictionary { get; set; }

そして、新しいクラスを追加します。

public class Class2
{
    public virtual decimal this[int key]
    {
        get { return Class2Dictionary[key]; }
        set { Class2Dictionary[key] = value; }
    }

    public virtual IDictionary<int, decimal> Class2Dictionary { get; set; }
}

このようにして、クラスと辞書の両方を通常どおりにマップし、次のように辞書にアクセスできます。

class1Instance.Class1Dictionary[DayOfWeek.Sunday][1] = 9.4
于 2010-04-10T17:45:05.113 に答える