Como un escribir una consulta Criterios con varias combinaciones involucrado
-
21-08-2019 - |
Pregunta
Estoy tratando de codificar la siguiente consulta HQL mediante la API Criterios:
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 objetos NHibernate:. Usuario (ID, Nombre, Papel, clientes), Papel (ID, Nombre) y clientes (ID, Nombre)
He intentado lo siguiente pero no funciona porque NHibernate trata de encontrar un cliente asociado a una función:
var userList = _session
.CreateCriteria(typeof(User))
.CreateCriteria("Role")
.Add(Restrictions.Eq("ID", 3) )
.CreateCriteria("Customer")
.Add(Restrictions.Eq("ID", 1) )
.List<User>();
Cualquier otra forma (que funciona!) De hacerlo?
Solución
Puede utilizar alias
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>();
Espero que ayuda
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow