2011-06-24 9 views
0

私がしたいことは、idsのリストを受け取り、ロードされたオブジェクトのリストを返すHQLクエリを構築することです。しばらくして、私はこのような何かが仕事ができることを見出したnhibernate内のcomposite-idのリストからオブジェクトをロードする

from Foo foo where foo.ID in (:IdList) 

しかし、私はアプリは次の例外スロー複合IDSのためにそれを使用しようとすると、beacuse単一のIDについては、この唯一の作品:

をSystem.ArgumentOutOfRangeException:インデックスが範囲外でした。負でなく、コレクションのサイズより小さくなければなりません。パラメータ名:インデックス

私は無知だ...

は、私は私がそれを使用する方法休止状態が、それはうまくdidntは説明することができ期待して、私のIDオブジェクト用のカスタムタイプを作成しました。

あなたのアイデアはありますか?私はこれを行うことができsqlqueryのを考えるカント

おかげ

答えて

0

Inは、私の知る限りでは、入力としてペアを取るカント)

この足りるが(私の頭の上に、それをテスト傾けるだろうたった今)?

var query = "from Foo foo where "; 

for (int i = 0; i < idlist.Count; i++) 
{ 
    query += "OR foo.ID = :p" + i; 
} 

var hqlquery = session.CreateQuery(query); 
for (int i = 0; i < idlist.Count; i++) 
{ 
    hqlquery.SetParameter("p" + i, idlist[0]); 
} 
関連する問題