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]]。

问:如何映射集合中包含的集合?

4

1 回答 1

1

您无法映射嵌套集合。您需要创建一个包含内部集合(需要是 ISet)的类。然后您可以将其映射为复合元素。

于 2012-09-11T08:59:21.753 回答