Передо мной была поставлена задача заменить одну из тех неприятных вещей, основанных на GUI программировании, которые предприятия иногда покупают, пытаясь сократить свой штат программистов с помощью Net основного приложения с помощью Dapper (теперь, когда они понял, что это ужасная ошибка и сделал мусорный код).
Мне не разрешено менять сохраненные процедуры в том виде, в каком они есть.
Вызываемый pro c содержит два значения: оператор select
и значение return
, которые оба были каким-то образом получены приложением. Мы не можем видеть, как приложение сделало это; это запутано в проприетарных «основных» библиотеках. Это выглядит примерно так:
--things it does
Select Prop1, Prop2, Prop3 from TheTable;
Return 0; --success
(я не могу вставить фактический запрос, потому что у нас агрессивная кибербезопасность, но это базовая логика c. За ней нет параметров OUT.)
Когда я использую метод Даппера ExecuteAsync(
, я получаю только возвращаемое значение 0 или ноль, в зависимости от возвращаемого значения. Я пытался изменить его на Query, но я всегда получаю значение NULL, даже если в SSMS есть значение, предоставляющее те же параметры для pro c.
var result = await _dbc.QueryFirstOrDefaultAsync<dynamic>("storedproc", paramsObject);
Как я также могу получить результаты оператора select без изменения хранимой процедуры для возврата обеих переменных?