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

时间:2020-03-05 18:44:10  来源:igfitidea点击:

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

Restriction.In()或者
Restriction.InG()

它们之间有什么区别?

解决方案

回答

Restriction.In会使用我们传递给.In()方法的任何条件来最终创建一个子查询,但不确定InG()会执行什么操作。没看过。

回答

InG是In(对于集合)的通用等效项

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

In(string propertyName, ICollection values)

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

查看NHibernate的源代码(trunk),似乎它们都将集合复制到对象数组并继续使用该对象,因此我认为它们之间没有性能差异。

在大多数情况下,我个人只是使​​用它更易于阅读。