質問

NhibernateマッピングファイルにSQL-queryが定義しているSQL-Queryがあり、ストアドプロシージャを呼び出してレコードを選択します。

 <sql-query name="sp_MYSP">
     exec MYDBSP :param1, :param2, :param3
 </sql-query>

コードでは、この方法で指定されたクエリを呼び出します。

  IQuery myQuery= Session.GetNamedQuery("sp_MYSP");
  myQuery.SetString("param1", p1);
  myQuery.SetString("param2", p2);
  myQuery.SetString("param3", p3);

結果を取得するには、「リスト」メソッドを使用します

   myQuery.List();

しかし、このようにして、列のようなメタ情報のないオブジェクトのリストを返します。特定のプロパティの価値を取得するためにデータテーブルのような結果を読みます...どうすればよいですか?

選択されたレコードは、私のドメインモーダルのエンティティを表すものではなく、特定のプロセスに使用するデータのコレクションのみです。

役に立ちましたか?

解決 2

あなたが正しい。

ただし、この記事からCodeProjetで公開されている別のソリューションが見つかりました。 http://www.codeproject.com/kb/tips/execute_sql_nhibernate.aspx

私のシナリオに適しています。

他のヒント

そのクエリをエンティティにマッピングしていない場合、データテーブルを期待していない場合、なぜNhibernateを使用するのですか?

残りのデータ(Session.Connection)に実際にそれを使用し、そこから生のADO.NETコマンドを作成している場合、Nhibernateから接続を取得できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top