在.Net Core中实现IDbConnection

chr*_*ark 8 c# interface dapper .net-core asp.net-core

我有一个.Net核心Web应用程序和.net核心库.使用Dapper时,我需要传入一个继承自的Dachper IDbConnection.问题是.Net Core System.Data不是一个可行的参考,看起来他们正在废除它.

是否有.Net替代品或nuget包我可以在哪里使用.我需要连接到Microsoft Sql Server 2016

编辑

我试图创建.Net标准库,看看我是否可以使用System.Data这种方式.我也无法添加System.Data到新项目中.

编辑2

我找到了一个nuget包System.Data.Common.这似乎工作它有接口,IDbConnection但我看不到连接到SQL的方法.我必须自己实现IDbConnection.所以我又不知所措了.

Set*_*Set 12

添加System.Data.SqlClient nuget包作为依赖项.它有

//
// Summary:
//     Represents an open connection to a SQL Server database. This class cannot be
//     inherited.
public sealed class SqlConnection : DbConnection
Run Code Online (Sandbox Code Playgroud)

所以你将能够做到

using System.Data.SqlClient;
...

using (IDbConnection dbConnection = new SqlConnection(connectionString))
{
    dbConnection.Open();
    // dbConnection.Execute(query, data);
}
Run Code Online (Sandbox Code Playgroud)

  • 截至 2019 年,您现在应该使用“Microsoft.Data.SqlClient”(以 nuget 包形式提供)。 (3认同)
  • Microsoft.Data.SqlClient 未定义 IDbConnection。 (3认同)
  • 啊,真是疯狂。 (2认同)
  • 对于我来说,它仍然是 System.Data.SqlClient 使用新的 .Net Core 3.1 项目。 (2认同)