您好我有以下内容:
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;
我做的事情是愚蠢的吗?谁能发现任何明显的东西?也许我一直盯着这个太久了?
答案 0 :(得分:0)
这似乎是由动态数据类型引起的。我摆脱了它,并使用了一个包含几个静态列表的大类,这些列表通常是空的,问题就消失了。