【问题标题】:nHibernate returns zero records from a stored procedurenHibernate 从存储过程返回零记录
【发布时间】:2015-10-22 05:44:21
【问题描述】:

我必须在 SQL 中执行一个返回几行的存储过程,但我似乎永远无法在 nHibernate 中捕获结果。我已经要求我的整个开发团队无济于事。这是我的代码:

        var results = this.Session.CreateSQLQuery("EXEC qa.AdjustDates @VpGuarantorId =:VpGuarantorId, @DatePart =:DatePart, @Adjustment =:Adjustment")
            .AddScalar("IssueLevel", NHibernateUtil.String)
            .AddScalar("IssueMessage", NHibernateUtil.String)
            .SetParameter("VpGuarantorId", guarantorId)
            .SetParameter("DatePart", datePart)
            .SetParameter("Adjustment", adjustment)
            .SetResultTransformer(new AliasToBeanResultTransformer(typeof (IssueResult)))
            .List<IssueResult>()
            .ToList();

课程如下:

public class IssueResult
{
    public virtual string IssueLevel { get; set; }
    public virtual string IssueMessage { get; set; }
}

(附注 - SQL Profiler 显示我们的应用程序正在正确调用 proc 并传递正确的参数)

【问题讨论】:

  • 在没有结果转换器的情况下试试?...只需使用 List() 看看你会得到什么
  • 没有错误报告,只有零记录总是在 nHibernate 中返回。
  • @dotjoe - 我只用 List() 尝试过,什么都没有。在这里呆了 8 个小时!
  • 尝试删除 AddScalars?
  • 可能太明显了,但是您是否尝试使用这些参数值运行查询并且在 sql 中有结果?

标签: c# sql-server stored-procedures nhibernate resultset


【解决方案1】:

嗯,这是一个在两个数据库中具有相同 SPROC 却不知道的情况:代码正在访问一个数据库,而我正在另一个数据库中测试我的查询。

抱歉这个愚蠢的问题,感谢大家的精彩回答。

【讨论】:

  • 我以前去过那里:)
  • 好你发现了:)
猜你喜欢
  • 2019-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多