dapper问题导致多个查询导致循环

时间:2017-11-07 21:57:39

标签: c# .net loops dapper

您好我有以下内容:

 public static RawData GetReportData(string connectionString, string UserGuid, string Report_Id)
    {

        var Connection = new SqlConnection(connectionString);

        using (var dbc = Connection)
        {
            var multi = dbc.QueryMultiple("myStoredProc", new { UserGuid, Report_Id }, commandType: CommandType.StoredProcedure);

            // get the model Id
            var Id = multi.Read<dynamic>().ToList();
            var mId = Id.First().model_ID;

            // get the report data
            var theData = multi.Read<dynamic>().ToList();

            var f = new RawData();
            //var thisworks = new List<dynamic>();

            f.Model_Id = mId;
            f.rdata =  theData;

            return f;
        }

    }

RawData就是这个模型:

public class RawData
{
    [DataMember]
    public int Model_Id { get; set; }
    [DataMember]
    public IEnumerable<dynamic> rdata { get; set; }
}

存储过程返回两个数据集。第一个包含一行,包含一个ID。第二个包含具有不同数据结构的报告。 Dapper代码工作正常,返回正确的数据。

然而,只要我尝试在模型中返回此数据,代码就会毫无错误地执行,但似乎又回来并尝试再次执行多重查询。这很奇怪。

如果我这样做,那就有效:

var thisworks = new List<dynamic>();
f.rdata = thisworks;  //theData;

我做的事情是愚蠢的吗?谁能发现任何明显的东西?也许我一直盯着这个太久了?

1 个答案:

答案 0 :(得分:0)

这似乎是由动态数据类型引起的。我摆脱了它,并使用了一个包含几个静态列表的大类,这些列表通常是空的,问题就消失了。