C# Fluent NHibernate自动映射为1个关系生成2个外键

C# Fluent NHibernate自动映射为1个关系生成2个外键,c#,fluent-nhibernate,automapping,C#,Fluent Nhibernate,Automapping,我有这样的设置(为了简洁起见进行了压缩) Class员工 虚拟IList已初始化{get;private set;} 类ChecklistItem 虚拟员工由{get;set;}初始化 当生成这些表时,我会得到这些表 Employee Id ChecklistItem Id InitialedBy_id <---- Employee_id <---- 员工 身份证件 清单项目 身份证件 由_id映射初始化 .HasMany(x=>x.hassin

我有这样的设置(为了简洁起见进行了压缩)

Class员工
虚拟IList已初始化{get;private set;}
类ChecklistItem
虚拟员工由{get;set;}初始化
当生成这些表时,我会得到这些表

Employee
    Id

ChecklistItem
    Id
    InitialedBy_id <----
    Employee_id <----
员工
身份证件
清单项目
身份证件
由_id映射初始化
.HasMany(x=>x.hassinitialed)
.KeyColumn(“由_id初始化”)

如果这是正确的,是否有一种方法可以根据ChecklistItem的属性名(lambda)选择KeyColumn?作为所有Hasmanie的约定

class HasManyConvention : IHasManyConvention
{
    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Key.Column(((ICollectionInspector)instance).Name + "_id");
    }
}
或者只是为了这个

class HasManyConvention : IHasManyConvention, IHasManyConventionAcceptance
{
    public void Accept(IAcceptanceCriteria<IOneToManyCollectionInspector> criteria)
    {
        criteria.Expect(x => x.Name == "HasInitialed"); // and/or entity type
    }

    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Key.Column(((ICollectionInspector)instance).Name + "_id");
    }
}

这会将Employee_id更改为hassinitialed_id,但它仍会生成另一个密钥。我可以在此处访问关系的“多”端吗?
class HasManyConvention : IHasManyConvention
{
    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Key.Column(((ICollectionInspector)instance).Name + "_id");
    }
}
class HasManyConvention : IHasManyConvention, IHasManyConventionAcceptance
{
    public void Accept(IAcceptanceCriteria<IOneToManyCollectionInspector> criteria)
    {
        criteria.Expect(x => x.Name == "HasInitialed"); // and/or entity type
    }

    public void Apply(IOneToManyCollectionInstance instance)
    {
        instance.Key.Column(((ICollectionInspector)instance).Name + "_id");
    }
}
class ReferenceConvention : IReferenceConvention
{
    public void Apply(IManyToOneInstance instance)
    {
        instance.Column(instance.Name + "_id");
    }
}