0

以下代码给出了上述错误,我不知道为什么:

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 承诺了魔法,我愿意相信。谢谢你的帮助。

4

1 回答 1

0

好久没试过结果+动态对象了……</p>

我认为这是因为你在做:

QueryResults<Results>结果是 Insight 类型

你可能想要:

QueryResults<MyType>

然后你得到一个Results<MyType> 包含返回值和 Set1 的

如果没有,请在 github 上张贴一张票,我们会帮助您。

于 2021-09-20T12:54:30.387 回答