NHibernate на:Разница между Restriction.In и Restriction.InG
-
09-06-2019 - |
Вопрос
При создании критериев в NHibernate я могу использовать
Ограничение.В() или
Ограничение.InG()
В чем разница между ними?
Решение
InG - общий эквивалент In (для коллекций)
Сигнатуры методов следующие (показана только ICollection В перегрузке):
In(string propertyName, ICollection values)
против.
InG<T>(string propertyName, ICollection<T> values)
Глядя на исходный код NHibernate (trunk), кажется, что они оба копируют коллекцию в массив объектов и используют ее в дальнейшем, поэтому я не думаю, что между ними есть разница в производительности.
Лично я большую часть времени просто использую In one - его легче читать.
Другие советы
Ограничение.In определенно создает подзапрос с любыми критериями, которые вы передаете методу .In(), но не уверен, что делает InG().никогда этого не видел.
Не связан с StackOverflow