Fetch.Join () не работает в Fluent NHibernate

У меня есть следующее переопределение сопоставления с одной стороны отношения:

public void Override(AutoMapping mapping)
{
    mapping.HasMany(x => x.WAsmtDetails).Inverse().AsBag().Cascade.AllDeleteOrphan().Access.PascalCaseField(Prefix.Underscore).Not.LazyLoad().Fetch.Join();
}

и с другой стороны отношения, которое у меня есть:

public void Override(AutoMapping mapping)
{
    mapping.References(x => x.ItemAsmtDetailDh).Not.Nullable().Not.LazyLoad().Fetch.Join();
}

Когда Я использую опцию ShowSql. Я вижу, что она все еще выдает отдельные операторы выбора для WAsmtDetails, что создает ужасную проблему «n + 1 выбирает». Почему игнорируется «.Not.LazyLoad (). Fetch.Join ()»?

Примечание: я использую Fluent NHibernate версии 1.1, не версии 2.1 из-за ошибки в более новой версии. (Подробнее об ошибке см. Мой ответ на этот вопрос ). Я использую NHibernate версии 2.1.2.4000.

11
задан Community 23 May 2017 в 11:52
поделиться