Pergunta

Ao criar um critério no NHibernate posso usar

Restrição.In() ou
Restrição.InG()

Qual a diferença entre eles?

Foi útil?

Solução

InG é o equivalente genérico de In (para coleções)

As assinaturas dos métodos são as seguintes (apenas a sobrecarga ICollection In é mostrada):

In(string propertyName, ICollection values)

vs.

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

Olhando para o código-fonte (tronco) do NHibernate, parece que ambos copiam a coleção para uma matriz de objetos e a usam daqui para frente, então não acho que haja uma diferença de desempenho entre eles.

Eu pessoalmente uso apenas o In na maioria das vezes - é mais fácil de ler.

Outras dicas

Restriction.In definitivamente cria uma subconsulta com qualquer critério que você passe para o método .In(), mas não tem certeza do que InG() faz.nunca vi isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top