.NET Core + Dapper + OracleManagedDataAccess.core +带空格的列

时间:2019-07-05 19:36:46

标签: asp.net-core dapper

当前有一个Spring Boot Service循环通过从Oracle中获取数据,并为JSON返回JSON。这似乎有点慢,所以我创建了一个.NET Core,它连接到相同的Oracle DB,调用相同的存储过程,并且速度更快。我遇到的问题是,使用Dapper时,我将一个类名传递给它来加载一个类,Oracle存储过程返回的列中间是空格。

例如,该列可能称为:“家庭电话”。

我无法更改proc,如何使用Dapper解决该问题,或者有可能吗?

public MyClassName GetDataFromOracle(MyParameterClass myParams)
{
    MyClassName myClassName = new MyClassName();

    using (OracleConnection con = new OracleConnection(conString))
    {
        using (OracleCommand cmd = con.CreateCommand())
        {
            try
            {
                con.Open();

                string procedureName = "PRODUCT_PROCNAME_SP";
                var dyParam = new OracleDynamicParameters();
                DateTime dtStart = Convert.ToDateTime(myParams.startDate);
                DateTime dtEnd = Convert.ToDateTime(myParams.endDate);
                dyParam.Add("p_START_DATE", dtStart, OracleDbType.Date, ParameterDirection.Input);
                dyParam.Add("p_END_DATE", dtEnd, OracleDbType.Date, ParameterDirection.Input);
                dyParam.Add("OUT_DATA", null, OracleDbType.RefCursor, ParameterDirection.Output);

                var result = SqlMapper.Query<MyClassName>(con, procedureName, param: dyParam, commandType: CommandType.StoredProcedure);

                foreach (var row in result)
                {
                    InternalClass br = (InternalClass)Convert.ChangeType(row, typeof(InternalClass));
                    myClassName.ICArray.Add(br);
                }
            }
            catch (OracleException ex)
            {
                //log it
            }
        }
    }

    return myClassName;
}

0 个答案:

没有答案