Boa tarde, traquilo? Alguem pode ajudar?
Esta dando o seguinte erro: NHibernate.Exceptions.GenericADOException: 'could not execute query
[ select produto0.CategoriaID as col_0_0, count(produto0.Id) as col_1_0, categoria1.Id as Id1_1, categoria1.Nome as Nome2_1 from Produto produto0 inner join Categoria categoria1 on produto0.CategoriaID=categoria1.Id group by produto0_.CategoriaID ]
[SQL: select produto0.CategoriaID as col_0_0, count(produto0.Id) as col_1_0, categoria1.Id as Id1_1, categoria1.Nome as Nome2_1 from Produto produto0 inner join Categoria categoria1 on produto0.CategoriaID=categoria1.Id group by produto0_.CategoriaID]'
"column \"categoria1_.id\" must appear in the GROUP BY clause or be used in an aggregate function"
class Program
{
static void Main(string[] args)
{
ISession session = NHibernateHelper.AbreSession();
string hql = "select p.Categoria as Categoria, count(p) as NumeroDeProdutos " +
"from Produto p group by p.Categoria";
IQuery q = session.CreateQuery(hql);
q.SetResultTransformer(Transformers.AliasToBean<ProdutosPorCategoria>());
IList<ProdutosPorCategoria> relatorio = q.List<ProdutosPorCategoria>();
foreach (ProdutosPorCategoria resultado in relatorio)
{
Console.WriteLine(resultado.Categoria.Nome + " " + resultado.NumeroDeProdutos);
}
session.Close();
Console.Read();
}
}
public class ProdutosPorCategoria
{
public Categoria Categoria { get; set; }
public long NumeroDeProdutos { get; set; }
}
public class Categoria
{
public virtual int Id { get; set; }
public virtual string Nome { get; set; }
public virtual IList<Produto> Produtos { get; set; }
}
public class Produto
{
public virtual int Id { get; set; }
public virtual string Nome { get; set; }
public virtual double Preco { get; set; }
public virtual Categoria Categoria { get; set; }
}