Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.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# 是否有任何方法可以在不使用EF的情况下将MSSQL服务器连接到.NET CORE(2.2)API?_C#_.net_Api_Asp.net Core_.net Core - Fatal编程技术网

C# 是否有任何方法可以在不使用EF的情况下将MSSQL服务器连接到.NET CORE(2.2)API?

C# 是否有任何方法可以在不使用EF的情况下将MSSQL服务器连接到.NET CORE(2.2)API?,c#,.net,api,asp.net-core,.net-core,C#,.net,Api,Asp.net Core,.net Core,我是.NETCore的新手,到目前为止,我正在尝试从.NETCoreAPI连接MSSQL服务器中的现有数据库 但我找到的所有例子都是使用EF 但是我想从用户定义的类连接MSSQL服务器,如下所示 DataBaseConnection.cs public class DatabaseConnection { private SqlDataAdapter sqlAdapter; private SqlConnection sqlConnection;

我是.NETCore的新手,到目前为止,我正在尝试从.NETCoreAPI连接MSSQL服务器中的现有数据库

但我找到的所有例子都是使用EF

但是我想从用户定义的类连接MSSQL服务器,如下所示

DataBaseConnection.cs

 public class DatabaseConnection 
    {
        private SqlDataAdapter sqlAdapter;
        private SqlConnection sqlConnection;
        SqlCommand sqlCommand = new SqlCommand();

        // Initialise Connection

        public DatabaseConnection()
        {
            sqlAdapter = new SqlDataAdapter();
            sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
        }

        // Open Database Connection if Closed or Broken

        private SqlConnection openConnection()
        {
            if (sqlConnection.State == ConnectionState.Closed || sqlConnection.State == ConnectionState.Broken)
            {
                sqlConnection.Open();
            }
            return sqlConnection;
        }
}
在构造函数中,我得到的错误是

appsettings.json

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=HealthAPI;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

有没有可能在不使用EF的情况下连接数据库?

我是使用变通方法连接的。下面是代码

public abstract class BaseDataService
{
    private Database database = null;

    public BaseDataService()
    {
        DatabaseFactory.SetDatabaseProviderFactory(new DatabaseProviderFactory(new SystemConfigurationSource(false).GetSection), false);
        this.database = DatabaseFactory.CreateDatabase("_connection");
    }
    public Database SqlDatabase
    {
        get
        {
            return this.database;
        }

        set
        {
            this.database = value;
        }
    }
}
App.config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="system.data" type="System.Data.Common.DbProviderFactoriesConfigurationHandler, Microsoft.Practices.EnterpriseLibrary.Data, Version=6.0.0.0, Culture=neutral, PublicKeyToken=null"/>
  </configSections>

  <connectionStrings>
    <add name="_connection" connectionString="Server=localhost;Database=DBNAME;Trusted_Connection=True;" providerName="System.Data.SqlClient"  />
  </connectionStrings>
</configuration>
像这样使用它

Configuration.GetSection("ConnectionStrings").DefaultConnection

对您遇到的错误与Configuration Manager有关。这不是数据库连接错误。如果你硬编码你的连接字符串在那里,它可能会工作。
<PackageReference Include="EnterpriseLibrary.Data.NetCore" Version="6.0.1313" />
public DatabaseConnection(IConfiguration configuration)
{
      string connectionString = configuration.GetConnectionString("DefaultConnection");
      sqlAdapter = new SqlDataAdapter();
      sqlConnection = new SqlConnection(connectionString);
}
Configuration.GetSection("ConnectionStrings").DefaultConnection