【发布时间】:2021-06-27 20:06:45
【问题描述】:
我已经投入了一些精力来使用 ADO.NET 以不可知的方式与后端 SQL Server 进行通信。我编写代码以使用 IDbConnection、IDbCommand、IDataReader,而不是具体类型。这对我来说效果很好。我可以编写如下代码:
using (IDbConnection connection = Connector.Connection)
using (IDbCommand command = connection.CreateCommand())
{
...
command.AddParameter("@id", id);
using (IDataReader reader = command.ExecuteReader()) {...}
....
}
将 IDbConnection 与 SqlConnection 相关联的魔力被抽象为类似于工厂的东西,我在这里称之为连接器。
我们希望使用表值参数作为存储过程的参数。我没有看到任何使用不使用 SqlConnection、SqlCommand、SqlParamater 和 SqlDataType 的 SQL 表值参数的示例。有没有一种方法可以通过 ADO.NET 传递表值参数,而无需借助具体的 SQL ADO 实现?
【问题讨论】:
-
只是好奇,您是否考虑过将参数作为序列化 JSON 传递,然后在 SQL 过程中对其进行反序列化?不确定这是否会有所帮助:sweatsmile:
-
这是一个关于方法的好主意。如果我不能使用漂亮的原生功能,那就太糟糕了。