Спасибо всем за отзыв.
Таблицы, которые я хотел, выглядят так:
Product
--------
ProductId
Name
SpecialProduct
--------------
ProductId
Option
------------
OptionId
SpecialProductId // Which ends up being just product id, but the FK here is to SpecialtyProduct
Я забыл добавить эту строку в своем исходном вопросе в класс OptionMap:
public class OptionMap : ClassMap<Option> {
public OptionMap() {
Id( x => x.OptionId );
References( x => x.ParentOption );
}
}
Если я тогда использую это вместо этого, оно работает так, как я хочу:
public class OptionMap : ClassMap<Option> {
public OptionMap() {
Id( x => x.OptionId );
References( x => x.ParentOption ).Column( "SpecialProductId" ).Not.Nullable();
}
}
Похоже, что Fluent добавил «ProductId» из-за ссылок и не выяснил, что соответствующий столбец уже был там.