首页 > 解决方案 > 如何在没有实体框架的情况下以通用方式在 C# 中调用异步存储过程调用

问题描述

我想重构许多存储过程调用,它们都具有非常相似的模式以使用通用方法。我还是异步编程的新手,所以想就我的意图的影响提出一些建议。

不幸的是,我将无法使用 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,我需要注意什么?还有什么对象最适合从阅读器返回数据?

标签: c#asynchronousstored-procedures

解决方案


推荐阅读