您可以进行以下操作:
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();
...
}
}
我添加了一个新层,以便更轻松地映射字典。