При создании критериев в NHibernate я могу использовать
Ограничение.В () или
Ограничение.InG ()
В чем разница между ними?





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