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
继承的。请随意将您的评论转换为答案。:)