Как вызвать асинхронные вызовы хранимых процедур в C # универсальным способом без Entity Framework - PullRequest
0 голосов
/ 23 января 2019

Я хотел бы провести рефакторинг многих вызовов хранимых процедур, которые имеют очень похожий шаблон для использования универсального метода.Я все еще новичок в асинхронном программировании, поэтому хотел бы получить несколько советов о влиянии моего намерения.

К сожалению, я не смогу использовать EF

Существующий пример:

var myModel = new Model();

            using (var connection = new SqlConnection("Some Connection String"))
            {
                using (var command = new SqlCommand("Some Stored Procedure Name", connection)
                {
                    CommandType = CommandType.StoredProcedure
                })
                {
                    await connection.OpenAsync();

                    //Code Building a list of params

                    using (var reader = await command.ExecuteReaderAsync())
                    {
                        while (await reader.ReadAsync())
                        {
                           //Code Building myModel
                        }
                    }
                }
            }

            return myModel;

То, чего я хотел бы добиться, - это метод, в котором вы передаете имя хранимой процедуры и список параметров, и он возвращает объект, который я могу перебрать, хотя и для извлечения нужных мне значений.

Есть ли какие-либо соображения, которые мне нужно знать относительно OpenAsync / ReadAsync?Кроме того, какой объект лучше всего будет вернуть данные от читателя?

...