5

エンティティを選択して関連リストを取得しようとしています:

    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");
    }
}
4

1 に答える 1