0

私は次のようなIQueriesを持っています:(以下のIQueriesは簡単にするためのダミーです。実際には、Iqueryを作成するさまざまなメソッドがあります)

IQuery q1 = "select q from Quarter where q.QuarterID = :QuarterID";
q1.SetParameter("QuarterID",14);
IQuery q2 = "select m from Month where m.QuarterID= :QuarterID";
q2.SetParameter("QuarterID",12);

次に、それらをマルチクエリに追加して実行します。

IMultiQuery iMultiQuery = session.CreateMultiQuery();

iMultiQuery.Add(q1);

iMultiQuery.Add(q2);

Ilist _result = iMultiQuery.List();//This gives an error saying :

名前付きパラメーター QuarterID が複数のクエリで使用されました。パラメータに一意の名前を付けるか、マルチクエリ SetParameter() メソッドを使用して名前付きパラメータを設定します。

注: 多くの場所でマルチクエリを使用しています。ただし、以前は Iquery の作成にパラメーター化を使用していませんでした。パラメータ化されたクエリの使用を開始して以来、この問題に直面しています。

ここに記録された同じ問題を見つけました

4

1 に答える 1

0

エラーは、直面している問題とその解決方法を明確に示していると思います。同じ MultiQuery に追加するクエリで異なるパラメーター名を使用すると、問題が修正されます。

IQuery q1 = "select ... from Quarter q where q.Id = :qid1";
q1.SetParameter("qid1", 14);
IQuery q2 = "select ... from Quarter q where q.Id = :qid2";
q2.SetParameter("qid2", 12);

var mq = session.CreateMultiQuery();
mq.Add (q1);
mq.Add (q2);
于 2013-07-17T13:45:10.047 に答える