Como a escrever uma consulta Criteria com várias associações envolvidos
-
21-08-2019 - |
Pergunta
Eu estou tentando código a seguinte consulta HQL usando a API Criteria:
var userList = _session
.CreateQuery("select u from User u where u.Role.ID=3 and u.Customer.ID=:cID")
.SetInt32("cID", 1)
.List<User>();
(3 NHibernate objetos:. Do usuário (ID, Nome, Função, o Cliente), Interpretação (ID, Name) eo Cliente (ID, Name)
Eu tentei o seguinte mas não funciona porque NHibernate tenta encontrar um cliente associado a uma função:
var userList = _session
.CreateCriteria(typeof(User))
.CreateCriteria("Role")
.Add(Restrictions.Eq("ID", 3) )
.CreateCriteria("Customer")
.Add(Restrictions.Eq("ID", 1) )
.List<User>();
Qualquer outra forma (que funciona!) De fazê-lo?
Solução
Você pode usar o apelido
var userList = _session
.CreateCriteria(typeof(User), "u")
.CreateAlias("u.Role", "r")
.Add(Restrictions.Eq("r.ID", 3) )
.CreateAlias("u.Customer", "c")
.Add(Restrictions.Eq("c.ID", 1) )
.List<User>();
Hope isso ajuda
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow