c# - 如何在没有实体框架的情况下以通用方式在 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,我需要注意什么?还有什么对象最适合从阅读器返回数据?
解决方案
推荐阅读
- apache-zookeeper - 如何以可靠的方式列出zookeeper znode?
- c++ - std::condition_variable 可预测的虚假唤醒?
- javascript - 事件侦听器无法访问我的 handleChange 函数
- r - 在同一块中使用 ggExtra 重叠边缘直方图
- shell - 来自数组的输入供 awk 查找重复项
- r - 如何在忽略内部生成的索引的同时使用`boot`
- azure-functions - 如何将所有人(甚至未经身份验证的用户)都可以访问的 Azure 函数添加到 AAD 安全的 Azure 函数应用程序中
- python - Xgboost - Decision Tree - Only one leaf
- javascript - Use document.ready or not when loading external data from an aJax call?
- r - Have all filter checkboxes checked to start when using crosstalk package with reactable in r