Fluent nhibernate Fluent NHibernate带复合键的自参考表

Fluent nhibernate Fluent NHibernate带复合键的自参考表,fluent-nhibernate,fluent-nhibernate-mapping,Fluent Nhibernate,Fluent Nhibernate Mapping,我只是想知道这是否可以用fluent nhibernate实现 我的数据库中有一个自引用表 Table Service { int Season (PK) (FK) int Service_No (PK) int ParentService_No (FK) } 该表有一个复合键作为季节和服务号,外键作为季节和父服务号用于自引用 我尝试在我的服务类中创建一个名为ChildServices的集合属性作为多对多关系 HasManyToMany(x => x.ChildServices ) .T

我只是想知道这是否可以用fluent nhibernate实现

我的数据库中有一个自引用表

Table Service
{
int Season (PK) (FK)
int Service_No (PK)
int ParentService_No (FK)
}
该表有一个复合键作为季节和服务号,外键作为季节和父服务号用于自引用

我尝试在我的服务类中创建一个名为ChildServices的集合属性作为多对多关系

HasManyToMany(x => x.ChildServices )
.Table("SERVICE")
.Access.Property()
.AsBag()
.Cascade.SaveUpdate()
.LazyLoad()
.Generic()
.ParentKeyColumns.Add("SEASON")
.ParentKeyColumns.Add("SERVICE_NO")
.ChildKeyColumns.Add("SEASON")
.ChildKeyColumns.Add("P_SERVICE_NO");
若我使用上面的映射,它将在集合:Service.ChildServices列:seasure的映射中抛出我的异常Repeated列

我该怎么做?这是fluent nhibernate的限制吗


谢谢你回答我的问题。

这是NHibernate的一个限制。不能将一列用于两种不同的内容,例如,在您的案例中,主键和外键

您可以尝试猜测NHibernate生成的别名,并使用
ParentService\u No
列作为foreignkey和带有服务\u No上别名的where条件