【发布时间】: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