Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Microsoft.Data.SqlClient连接、命令、参数等转换为System.Data.SqlClient_C#_.net_Sql Server_Ado.net_Sqlclient - Fatal编程技术网

C# 将Microsoft.Data.SqlClient连接、命令、参数等转换为System.Data.SqlClient

C# 将Microsoft.Data.SqlClient连接、命令、参数等转换为System.Data.SqlClient,c#,.net,sql-server,ado.net,sqlclient,C#,.net,Sql Server,Ado.net,Sqlclient,去年,微软推出了新的 现在,如果我想编写以SqlConnection为例的库代码,我该如何处理它,以便它同时适用于Microsoft.Data.SqlClient.SqlConnection和旧的System.Data.SqlClient.SqlConnection?是否有一种内置方式或第三方软件包可以弥合两个SqlClient软件包之间的差距?或者我必须加倍我的库代码才能支持这两个包吗?我不明白为什么需要复制任何代码。查询保持不变,只是提供了一些附加功能,如Azure Active Direc

去年,微软推出了新的


现在,如果我想编写以
SqlConnection
为例的库代码,我该如何处理它,以便它同时适用于
Microsoft.Data.SqlClient.SqlConnection
和旧的
System.Data.SqlClient.SqlConnection
?是否有一种内置方式或第三方软件包可以弥合两个SqlClient软件包之间的差距?或者我必须加倍我的库代码才能支持这两个包吗?

我不明白为什么需要复制任何代码。查询保持不变,只是提供了一些附加功能,如Azure Active Directory集成


使用
DbConnection
DbCommand
等作为基类,也可以使用依赖项注入或类似的技术来决定使用哪种类型。

我不明白为什么需要这样做。使用
DbConnection
等作为基类,并使用依赖项注入来决定使用哪种类型创建两个版本的库,您可以使用条件编译。它们是不相关的。执行dapper所做的操作,并编写同时接受和/或打开对象参数类型的扩展方法。或者使用System.Data.Common(ie DbCommand)中的类型或System.Data(IDbConnection)@Charlieface中的接口感谢您的提示,我没有意识到它们都是从同一个
DbConnection
继承的。请随意将您的评论转换为答案。:)