NHibernate で条件を作成するときに使用できる
Restriction.In() または
Restriction.InG()
それらの違いは何ですか?
InG は、In (コレクションの場合) に相当する一般的なものです。
メソッドのシグネチャは次のとおりです (ICollection In オーバーロードのみが示されています)。
In(string propertyName, ICollection values)
対。
InG<T>(string propertyName, ICollection<T> values)
NHibernate のソース コード (trunk) を見ると、どちらもコレクションをオブジェクト配列にコピーしてそれを使用しているように見えるので、パフォーマンスの違いはないと思います。
私は個人的に、ほとんどの場合 In one を使用しています - その方が読みやすいです。
Restriction.In は、.In() メソッドに渡す基準を使用してサブクエリを確実に作成しますが、InG() が何をするかはわかりません。見たことがない。