如何使用 nhibernate 条件运行函数



我们有一个搜索例程,它使用条件来构建SQL查询(因为它的限制是动态添加的)。在特定情况下(非常复杂的情况),我们需要搜索表值函数。(我们的模型对象映射到函数)。

结果将是这样的:

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

问题是我不知道如何将@staffId传递给我的条件(我尝试添加 Eq 限制但没有成功,因为限制适用于属性)我知道我可以向 IQuery 添加一个参数,但我不知道如何使用 ICriteria 对象来做到这一点。

如果我

完全理解你的问题,你可以回到标准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 返回哪一个

最新更新