Pregunta

Al crear un criterio en NHibernate puedo usar

Restricción.En() o
Restricción.InG()

¿Cuál es la diferencia entre ellos?

¿Fue útil?

Solución

InG es el equivalente genérico de In (para colecciones)

Las firmas de los métodos son las siguientes (solo se muestra la sobrecarga ICollection In):

In(string propertyName, ICollection values)

vs.

InG<T>(string propertyName, ICollection<T> values)

Al observar el código fuente (troncal) de NHibernate, parece que ambos copian la colección en una matriz de objetos y la usan en el futuro, por lo que no creo que haya una diferencia de rendimiento entre ellos.

Yo personalmente uso In one la mayor parte del tiempo: es más fácil de leer.

Otros consejos

Restricción.In definitivamente crea una subconsulta con cualquier criterio que pase al método .In(), pero no estoy seguro de qué hace InG().nunca lo había visto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top