加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Net Core Connection String Dapper visual studio 2017

发布时间:2020-12-15 07:59:07 所属栏目:百科 来源:网络整理
导读:我试图在我的.Net Core应用程序中设置连接字符串,但我一直收到错误: System.NullReferenceException:’对象引用未设置为对象的实例.’ 我尝试将以下内容添加到appsettings.json: "ConnectionStrings": {"Analysis": "Server=DESKTOP-MYSERVER;Database=MY
我试图在我的.Net Core应用程序中设置连接字符串,但我一直收到错误:

System.NullReferenceException:’对象引用未设置为对象的实例.’

我尝试将以下内容添加到appsettings.json:

"ConnectionStrings": {

"Analysis": "Server=DESKTOP-MYSERVER;Database=MYDATABASE;User Id=sa; Password=Password123;Provider=System.Data.SqlClient;Trusted_Connection=True;MultipleActiveResultSets=true;Pooling=false;"
}

我也试过像以前那样使用web.config .Net Core:

<connectionStrings>
<add name="Analysis" providerName="System.Data.SqlClient" 
     connectionString="Server=DESKTOP-MYSERVER;Database=MYDATABASE;User Id=sm;Password=Password123;"/>

然后在c#我有:

public List<DapperTest> ReadAll()
    {
        var data = new List<DapperTest>();
        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Analysis"].ConnectionString))
        {
             data = db.Query<DapperTest>("select * from testTable").ToList();
        }

        return data;
    }

两种方式都给我例外:

System.NullReferenceException:’对象引用未设置为对象的实例.’

我使用了以下资源:

.Net CORE Dapper Connection String?

https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro

Get connection string from App.config

但我错过了一些东西.我只设置了一次连接字符串,它不在.Net Core中,因此对其他人来说显而易见.

解决方法

如果您正在使用appsettings.json,请创建一个简单的POCO类来为您的连接字符串配置建模,如下所示:
public class ConnectionConfig
{
        public string Analysis {get;set;}
}

在Startup.cs中的ConfigureServices方法中添加此行

services.Configure<ConnectionConfig>(Configuration.GetSection("ConnectionStrings"));

数据服务类

class YourClass{
    private string _connectionString;

    YourClass(string connectionString){
       _connectionString = connectionString;
    }

    //Your implementation
    public List<DapperTest> ReadAll()
    {
        var data = new List<DapperTest>();
        using (IDbConnection db = new SqlConnection(_connectionString)
        {
            data = db.Query<DapperTest>("select * from testTable").ToList();
        }

       return data;
   }
}

注入IOptions< ConnectionConfig>在你的控制器构造函数中.

class YourController : Controller{
   YourClass _testing;

   YourController(IOptions<ConnectionConfig> connectionConfig){
       var connection = connectionConfig.Value;
       string connectionString = connection.Analysis;
       _testing = new YourClass(connectionString );
    }
   public IActionResult Index() { 
        var testingData = _testing.ReadAll(); 
        return View(); 
     }
 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读