NHibernate QueryOver с Fetch в результате нескольких SQL запросов и дБ

Я пытаюсь выбрать объект и получить связанный список:

    Session.QueryOver<UserRole>()
           .Fetch(x => x.UsersInRole).Eager
           .List();

Что приводит к большому количеству обращений к базе данных. Первый что-то вроде:

 SELECT ... FROM UserRoles
 left outer join UsersInRoles on ...

И еще сотни отдельных запросов, которые выглядят примерно так:

 SELECT ... FROM UsersInRoles
 left outer join UserRoles on ...
 WHERE UserRoles.UserId=?

Отображение выглядит следующим образом:

public class UserRoleMap : ClassMap<UserRole>
{
    public UserRoleMap()
    {
        Id(x => x.Id);
        Map(x => x.RoleName);
        HasManyToMany(x => x.UsersInRole)
        .Inverse()
        .LazyLoad()
        .Table("UsersInRoles");
    }
}

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

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