在 NHibernate 中创建标准时,我可以使用
Restriction.In() 或
Restriction.InG()
它们之间有什么区别?
InG 是 In 的通用等价物(用于集合)
方法的签名如下(仅显示 ICollection In 重载):
In(string propertyName, ICollection values)
对比
InG<T>(string propertyName, ICollection<T> values)
查看 NHibernate 的源代码(主干),似乎它们都将集合复制到对象数组并继续使用它,所以我认为它们之间没有性能差异。
我个人大部分时间只使用 In one - 它更容易阅读。
Restriction.In 肯定会使用您传递给 .In() 方法的任何条件创建一个子查询,但不确定 InG() 的作用。没见过。