我需要使用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]]。
问:如何映射集合中包含的集合?
答案 0 :(得分:1)
您无法映射嵌套集合。您需要创建一个包含内部集合的类(需要是一个ISet)。然后,您可以将其映射为复合元素。