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

时间:2008-08-28 00:33:46

标签: c# nhibernate orm

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

限制.In()或
Restriction.InG()

他们之间有什么区别?

2 个答案:

答案 0 :(得分:11)

InG是In(对于集合)

的通用等价物

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

In(string propertyName, ICollection values)

VS

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

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

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

答案 1 :(得分:0)

Restriction.In肯定会创建一个子查询,其中包含您传递给.In()方法的任何条件,但不确定InG()的作用。从未见过它。

相关问题