C# 当外键列位于联接表上时引用联接实体

C# 当外键列位于联接表上时引用联接实体,c#,.net,nhibernate,fluent-nhibernate,nhibernate-mapping,C#,.net,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,我有以下类映射: 教材: Table("BOOKS") Id(b => b.Id) Join("BOOKS_EXTRA_INFO", j => { j.Optional(); j.References(b => b.Author); } 课程作者: TABLE("AUTHORES") Id(a => a.Id) HasMany(a => a.Books).Table("BOOKS_EXTRA_INFO") 此映

我有以下类映射: 教材:

Table("BOOKS")
Id(b => b.Id)
Join("BOOKS_EXTRA_INFO", j =>
    {
         j.Optional();
         j.References(b => b.Author);
    }
课程作者:

TABLE("AUTHORES")
Id(a => a.Id)
HasMany(a => a.Books).Table("BOOKS_EXTRA_INFO")
此映射的问题在于,当我尝试执行以下操作时:

var a = Session.Get<Author>(1);
正确的Where子句应为:

Select ... WHERE BOOKS_EXTRA_INFO.AUTHOR_ID = 1
我发现了这个问题:这与我的问题非常相似(如果不是相同的话),但解决方案使用xml映射,我不知道如何在fluent映射中实现同样的效果

我无法更改数据库架构。

对于我的问题,什么是正确的fluent映射


编辑:更新映射以显示我拥有的精确映射。

您链接的答案指定集合上的表名。这可以用Fluent轻松完成:

HasMany(a => a.Books).Table("BOOKS_EXTRA_INFO");

我忘了说我已经试过了,但没用。这可能是fluent nhibernate中的错误吗?如果指定了表,您是否检查了生成的XML映射?
HasMany(a => a.Books).Table("BOOKS_EXTRA_INFO");