[英]I have custom data which is return from stored procedure so I need to add those data into list<> and return in asp.net core web api c#
这是我的代码示例:
using (IDbConnection con = new SqlConnection(Constants.DefaultConnectionString))
{
if (con.State == ConnectionState.Closed)
con.Open();
DynamicParameters parameter = new DynamicParameters();
parameter.Add("@StandardObjectName", StandardObject);
parameter.Add("@UserID", UserID);
var AccountRecord = await con.QueryAsync<GetCustomDataForStandardObject>(
StoredProcedure.GetCustomobjectDataForStandardObject, parameter,
commandType: CommandType.StoredProcedure);
var mapResult = Common.AutoMapper.MapListData<GetCustomDataForStandardObject,
GetStandardBYName>(AccountRecord.ToList());
List<string> CustomData = new List<string>();
GetCustomObjectLinkData Data = null;
// DataTable dt = new DataTable();
// LeadRecord.ToList();
for (int a = 0; a < mapResult.Count; a++)
{
int customobjectid = 0;
customobjectid = mapResult[a].CustomObjectID;
DynamicParameters pa = new DynamicParameters();
pa.Add("@CustomObjectSchemaId", customobjectid);
var rowAffected = await con.QueryAsync(StoredProcedure.GetCustomObjectData,
pa, commandType: CommandType.StoredProcedure);
rowAffected.ToList();
}
}
我有多个 customobjectid 的多个数据行,我需要将这些数据添加到数组或列表中。 任何人都可以帮助我吗?
这只是根据您的示例代码在黑暗中拍摄的一个镜头,因为我对 dapper 一无所知(我假设这是 dapper?如果是这样,请在您的问题中添加Dapper
标签),但看看是否像这让你更接近你想要的。
我在调用QueryAsync
时使用ToList()
,因此对于mapResult
中的每个result
,都会返回一个新的List<rowData>
。 然后在.Select
语句上调用.ToList()
将结果返回为List<List<rowData>>
,其中每个内部列表是一行值,而外部列表是一个行列表。
下面的代码将替换您的for
循环:
var rowsAffected = mapResult.Select(result =>
{
DynamicParameters pa = new DynamicParameters();
pa.Add("@CustomObjectSchemaId", result.CustomObjectID);
return await con.QueryAsync(StoredProcedure.GetCustomObjectData,
pa, commandType: CommandType.StoredProcedure).ToList();
}).ToList();
// rowsAffected is a List<List<rowData>>, where the outer list contains all the rows
// and each inner list is the row data for a specific row
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.