Ibernazione:Differenza tra Restriction.In e Restriction.InG
-
09-06-2019 - |
Domanda
Quando creo un criterio in NHibernate posso usare
Restrizione.In() o
Restrizione.InG()
Qual'è la differenza tra loro?
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