¿Cuál es la diferencia entre JoinQueryOver y JoinAlias?
Necesito saber cuál es la diferencia entre JoinQueryOver y JoinAlias, y cuándo usar cada uno?
Gracias.
84
2 answers
Funcionalmente hacen lo mismo, crean una unión a otra entidad. La única diferencia es lo que devuelven. JoinQueryOver devuelve una nueva QueryOver con la entidad actual siendo la entidad unida, mientras que JoinAlias devuelve la QueryOver original que tiene la entidad actual como la entidad raíz original.
Cualquiera que use es una cuestión de gusto personal: (de http://nhibernate.info/doc/nh/en/index.html#queryqueryover)
IQueryOver<Cat,Kitten> catQuery =
session.QueryOver<Cat>()
.JoinQueryOver<Kitten>(c => c.Kittens)
.Where(k => k.Name == "Tiddles");
Y
Cat catAlias = null;
Kitten kittenAlias = null;
IQueryOver<Cat,Cat> catQuery =
session.QueryOver<Cat>(() => catAlias)
.JoinAlias(() => catAlias.Kittens, () => kittenAlias)
.Where(() => kittenAlias.Name == "Tiddles");
Son funcionalmente lo mismo. Tenga en cuenta cómo se hace referencia expresa a las kittenAlias en la segunda consulta.
102
Author: Vadim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-03 13:07:24
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-03 13:07:24
Serie QueryOver-Parte 2: Lo básico y unirse por Andrew Whitaker da una muy buena explicación:
Resumen:
IQueryOver
es un tipo genérico con dos parámetros de tipoTRoot
yTSubType
.Select
opera enTRoot
mientras que otros métodos de consulta operan enTSubType
.TRoot
permanece igual que cuando está creando una consulta, peroTSubType
cambia cuando se une usandoJoinQueryOver
JoinQueryOver
yJoinAlias
añaden uniones a la consulta.JoinAlias
no cambiaTSubType
, peroJoinQueryOver
sí.- Puede usar alias al crear una consulta para referirse a propiedades que no pertenecen a
TRoot
oTSubType
10
Author: Michał Powaga,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-03 10:30:12
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-03 10:30:12