В настоящее время существует Spring Boot Service, который проходит через извлечение данных из Oracle, возвращая JSON для внешнего интерфейса React. Это кажется немного медленным, поэтому я создал ядро .NET, подключающееся к той же базе данных Oracle, вызывая ту же хранимую процедуру, и это быстрее. Проблема, с которой я сталкиваюсь: с помощью Dapper я передаю имя класса для загрузки класса, а хранимая процедура Oracle возвращает столбцы с пробелами в середине.
Например, столбец может называться «Домашний телефон».
Я не могу изменить процедуру, как решить эту проблему с помощью 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;
}