У меня есть следующее переопределение отображения с одной стороны отношения:
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.