Ответы пользователя по тегу SQL
  • Как сформулировать пагинацию предметов по игрокам в NHibernate?

    Indermove
    @Indermove Автор вопроса
    C#/.NET back-end разработчик
    В общем, оставим для потомков, может когда-то кому-то поможет. Немного исправив запрос получим вот такой результат:

    var getBatchOfPlayers = QueryOver.Of<PlayerInfoEntity>()
        .Where(entity => entity.IsSimulation == player.IsSimulation && entity.Role.IsIn(roles))
        .OrderBy(entity => entity.Login).Asc
        .Select(entity => entity.Id) // Исправили Login на Id
        .Skip(startOffset).Take(limit);
    
    res = session.QueryOver<ItemsEntity>()
        .WithSubquery.WhereProperty(entity => entity.Player.Id).In(getBatchOfPlayers) // Исправили Login на Id
        .Cacheable().CacheMode(CacheMode.Normal)
        .List().GroupBy(x => x.Player.Login)
        .Select(ConvertSpecial)
        .ToList();
    Ответ написан
    Комментировать