Критерии NHibernate с различной нагрузкой на родителей Все дети?

У меня есть родительские дочерние отношения, где я хочу вернуть только одного родителя и загрузить всех детей. Я использую критерии, потому что это динамический запрос.

var messageQueueId = this.GetPropertyName<MessageQueue>(x => x.Id);

var query = _sessionManager.Session.CreateCriteria<MessageQueue>(QUEUE_ALIAS);

query.SetFirstResult(_pageOffset);
query.SetMaxResults(_pageSize);
query.Add(Restrictions.In(messageQueueId, _messageQueueIds));

query.List<MessageQueue>();

Это возвращает родителя (MessageQueue), но не его детей (SearchMatches).

Когда я пытаюсь сделать это:

var query = _sessionManager.Session
    .CreateCriteria<MessageQueue>(QUEUE_ALIAS)
    .CreateAlias(this.GetPropertyName<MessageQueue>(x => x.SearchMatches)
                , MATCH_ALIAS, JoinType.LeftOuterJoin);

Тогда я загружаю детей, но также я получаю дублирующих родителей. Я понимаю, почему это происходит. Однако я не понимаю, как получить первый сценарий для автоматической загрузки SearchMatches?

Вот мои права:

public class MessageQueue : EntityBase
{
    ...
    public virtual IList<SearchMatch> SearchMatches { get; set; }
    ...
}

public class SearchMatch : EntityBase
{
    ...
    public virtual MessageQueue MessageQueue { get; set; }
    ...
}

Свободный NHibernate установлен наDefaultCascade.All(), У меня нет других переопределений для этих объектов.

Я пытался использоватьInverse() а такжеNot.LazyLoad() от переопределения MessageQueue. Также пытался EagerLoad от CreateAlias. Но я все еще не получаю то, что мне нужно.

Ответы на вопрос(1)

Ваш ответ на вопрос