У меня есть следующее переопределение сопоставления на одной стороне отношения:
public void Override(AutoMapping<ItemAsmtDetailDh> mapping)
{
mapping.HasMany<WAsmtDetail>(x => x.WAsmtDetails).Inverse().AsBag().Cascade.AllDeleteOrphan().Access.PascalCaseField(Prefix.Underscore).Not.LazyLoad().Fetch.Join();
}
и с другой стороны моих отношений:
public void Override(AutoMapping<WAsmtDetail> mapping)
{
mapping.References<ItemAsmtDetailDh>(x => x.ItemAsmtDetailDh).Not.Nullable().Not.LazyLoad().Fetch.Join();
}
Когда я использую опцию ShowSql, я вижу, что она по-прежнему выдает отдельные операторы select для WAsmtDetails, давая мне страшную проблему "n + 1 selects". Почему ".Not.LazyLoad (). Fetch.Join ()" игнорируется?
Примечание: я использую Fluent NHibernate версии 1.1, , а не версии 2.1, из-за ошибки в более новой версии. (Подробнее об ошибке см. Мой ответ на этот вопрос .) Я использую NHibernate версию 2.1.2.4000.