以下代码给出了上述错误,我不知道为什么:
var x = _sqlConn.Connection().QueryResults<Results>("MyDb.dbo.get_records", new { id = theId });
int retVal = x.Outputs.Return_Value;
if (retVal == 0) // ...meaning result set was also returned...fine to this point.
{
var list = x.Outputs.Set1; // exception thrown here with above error
var temp = list.FirstOrDefault();
多年来,我一直在使用 Insight.Database 的其他功能,但不必在检索记录集的同时检索 SQL RETURN 值。SQL 本身在 SSMS 中正常工作,返回结果集和 RETURN 值 0,正如预期的那样。这发生在 VS2019、.NET 4 和 .NET 4.5.2 中;Insight.Database 5.2.7 和 5.2.8。
我从以下页面获得了此代码: https ://github.com/jonwagner/Insight.Database/wiki/Specifying-Result-Structures 其中显示了这一点:
var results = connection.QueryResults<Beer, Glass>("GetAllBeersAndAllGlasses");
IList<Beer> beers = results.Set1;
我从这里结合了以下代码: https ://github.com/jonwagner/Insight.Database/wiki/Output-Parameters
var results = connection.QueryResults<Results>("MyProc", inputParameters);
var p = results.Outputs.p;
那部分有效。它正在访问失败的 .Set1,我不知道如何找出原因。我没有使用 FastExpando 课程的经验,但 Jon 承诺了魔法,我愿意相信。谢谢你的帮助。