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),似乎它们都将集合复制到对象数组并继续使用该对象,因此我认为它们之间没有性能差异。
在大多数情况下,我个人只是使用它更易于阅读。