繁体   English   中英

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#

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM