您可以进行以下操作:
Dictionary<int,IList<BookElement>> BookElements { get; set; }
表示 Page->BookElements 的关系
所以你可以做
if( BookElemets.Keys.Contains(pageNum) )
    BookElements[pageNum][elementNum]
添加解决方案:
class PageElements
{
    public virtual int PageNumber { get; set; }
    public virtual IList<BookElements> { get; set; }
}
class PageElementsMap : ClassMap<PageElements>
{
    public PageElementsMap()
    {
        Id(x => x.Id).GeneratedBy.Identity().Column("ID");
        Map(x => x.PageNumber);
        HasMany(x => x.BookElements)
            .KeyColumn("PageElementsID")
            .Cascade.AllDeleteOrphan();
    }
}
public virtual IDictionary<int,PageElements> PageElements { get; set; }
class MainEntityMap : ClassMap<MainEntity>
{
    public MainEntityMap()
    {
        ...
        HasMany( x => x.PageElements )
            .AsMap( x=> x.PageNumber )
            .Cascade.AllDeleteOrphan();
        ...
    }
}
我添加了一个新层,以便更轻松地映射字典。