当前有一个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;
}