是否可以在流畅的nhibernate约定中指定要用于列表的Index属性的名称?

Tee*_*vus 5 fluent-nhibernate

在流畅的nhibernate中映射HasMany或HasManyToMany时,可以指定用于列表的列名作为AsList()方法的参数,如下所示:

HasMany(c => c.Customers)
    .AsList(c => c.Column("PositionIndex"));
Run Code Online (Sandbox Code Playgroud)

我希望能够使用Fluent NHibernate约定(预先存在的约定或自定义约定)来设置它,特别是因为默认名称似乎是"索引",它是MSSQL中的保留字.

我尝试使用实现IHasManyConvention的自定义约定,但实例参数似乎不包含有关其列表,包或集的信息,也不包含索引列的列详细信息.

public void Apply(IOneToManyCollectionInstance instance)
{

}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

nul*_*ken 1

当应用约定时,底层映射已经生成。目前无法通过约定将此映射更改为有序集合(或任何其他类型)。

但是,您仍然可以通过 IAutoMappingOverride<> 更改集合类型,因为它们在约定之前应用。

即使尚不支持此功能,它在下一个版本的待办事项列表中看起来也相当靠前。请参阅此线程了解更多详细信息。