Net Core Connection String Dapper视觉工作室2017

我试图在我的.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:

   

然后在c#我有:

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

两种方式都给我例外:

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

我使用了以下资源:

.Net CORE Dapper连接字符串?

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

从App.config获取连接字符串

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

如果您正在使用appsettings.json,请创建一个简单的POCO类来为您的连接字符串配置建模,如下所示:

 public class ConnectionConfig { public string Analysis {get;set;} } 

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

 services.Configure(Configuration.GetSection("ConnectionStrings")); 

数据服务类

 class YourClass{ private string _connectionString; YourClass(string connectionString){ _connectionString = connectionString; } //Your implementation public List ReadAll() { var data = new List(); using (IDbConnection db = new SqlConnection(_connectionString) { data = db.Query("select * from testTable").ToList(); } return data; } } 

在控制器构造函数中注入IOptions

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