1

Fluent NHibernate を使用して、次のプロパティ (Foo の Vms) をマップする必要があります。

public class Foo
{
    [DataMember]
    public IDictionary<VpgId, HashSet<VmId>> Vms 
    { get;  private set; }
}

public class VpgId
{
    [DataMember]
    public virtual Guid GroupGuid 
    { get; private set; }
}

public class VmId
{
    [DataMember]
    public virtual string VmName
    { get; private set; }

}

HashSet を ISet に変更して、次の FNH 構成を追加しようとしました

.Override<Foo>(obj => obj.HasMany(x => x.Vms ).Cascade.AllDeleteOrphan())

しかし、次の例外が発生します。

例外をスローしました。NHibernate.MappingException: NHibernate.MappingException: 関連付けがマップされていないクラスを参照しています: System.Collections.Generic.ISet`1[[Common.VmId, Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].

Q: コレクションに含まれるコレクションをマップするにはどうすればよいですか?

4

1 に答える 1

1

ネストされたコレクションをマップすることはできません。内部コレクション (ISet である必要があります) を含むクラスを作成する必要があります。次に、それを複合要素としてマップできます。

于 2012-09-11T08:59:21.753 に答える