Domanda

Quando creo un criterio in NHibernate posso usare

Restrizione.In() o
Restrizione.InG()

Qual'è la differenza tra loro?

È stato utile?

Soluzione

InG è l'equivalente generico di In (per le collezioni)

Le firme dei metodi sono le seguenti (viene mostrato solo l'overload ICollection In):

In(string propertyName, ICollection values)

contro

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

Guardando il codice sorgente (trunk) di NHibernate sembra che entrambi copino la raccolta in un array di oggetti e lo utilizzino in futuro, quindi non penso che ci sia una differenza di prestazioni tra loro.

Personalmente uso solo In one per la maggior parte del tempo: è più facile da leggere.

Altri suggerimenti

Restriction.In crea sicuramente una sottoquery con qualunque criterio passi al metodo .In(), ma non è sicuro di cosa fa InG().mai visto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top