Search code examples
c#asp.net-core.net-coreinterfaceidbconnection

Implement IDbConnection in .Net Core


I have a .Net core web application and .net core library. When using Dapper, I need to pass in a concrete class that inherits from IDbConnection. The problem is that in .Net Core System.Data is not a viable reference, it looks like they are doing away with it.

Is there a .Net replacement or a nuget package I can use some where. I need to connect to Microsoft Sql Server 2016

Edit

I attempted to make a .Net Standard Library to see if I could use System.Data that way. And I also could not add System.Data to the new project.

Edit 2

I found a nuget package System.Data.Common. This seemed to work it had the interface IDbConnection however I can't see a way to connect to SQL. I would have to make my own implementation of IDbConnection. So I am at a loss again.


Solution

  • Add System.Data.SqlClient nuget package as dependency. It has

    //
    // Summary:
    //     Represents an open connection to a SQL Server database. This class cannot be
    //     inherited.
    public sealed class SqlConnection : DbConnection
    

    so you will be able to do

    using System.Data.SqlClient;    // As of 2019 using Microsoft.Data.SqlClient;
    ...
    
    using (IDbConnection dbConnection = new SqlConnection(connectionString))
    {
        dbConnection.Open();
        // dbConnection.Execute(query, data);
    }