NHIbernate:Restriction.In和Restriction.InG之间的区别

lom*_*axx 4 c# nhibernate orm

在NHibernate中创建条件时,我可以使用

Restriction.In()或
Restriction.InG()

他们之间有什么区别?

Gar*_*eth 11

InG是In(用于集合)的通用等价物

方法的签名如下(仅显示ICollection In重载):

In(string propertyName, ICollection values)
Run Code Online (Sandbox Code Playgroud)

InG<T>(string propertyName, ICollection<T> values)
Run Code Online (Sandbox Code Playgroud)

看看NHibernate的源代码(主干),它们似乎都将集合复制到一个对象数组并继续使用它,所以我认为它们之间没有性能差异.

我个人大多数时间都只使用In - 它更容易阅读.