0

基準を使用して SQL クエリを作成する検索ルーチンがあります (その制限が動的に追加されるため)。特定のケース (非常に複雑なケース) では、テーブル値関数を検索する必要があります (モデル オブジェクトは関数にマップされます)。

結果は次のようになります。

SELECT count(*) FROM dbo.GetSubStaffsLetterInstances(@staffId) WHERE LetterNumber="1234";

問題は、 @staffId を基準に渡す方法がわからないことです (制限がプロパティで機能しているため、Eq 制限を追加しようとしましたが成功しませんでした) IQuery にパラメーターを追加できることはわかっていますが、方法がわかりません。 ICriteria オブジェクトを使用してそれを行うことができます。

4

1 に答える 1

1

あなたの質問を完全に理解できたら、標準 SQL に頼ることができます:-

var sql = "SELECT count(*) FROM dbo.GetSubStaffsLetterInstances(:staffId) 
   WHERE LetterNumber=:letterNum";

var count = session.CreateSqlQuery(sql)
  .setInt32("staffId", 12345)
  .setString("letternum", "A1")
  .UniqueResult<int>();

.UniqueResult<long>();または、どのHQLが返されるか思い出せないので試してください

于 2012-07-04T21:10:08.267 に答える