Net Core 连接字符串 Dapper visual studio 2017
Net Core Connection String Dapper visual studio 2017
我正在尝试在我的 .Net Core 应用程序中设置连接字符串,但我一直收到错误消息:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
我尝试将以下内容添加到 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: 'Object reference not set to an instance of an object.'
我使用了以下资源:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
Get connection string from App.config
但我遗漏了一些东西。我只设置了一次连接字符串,它不在 .Net Core 中,所以对其他人来说很明显。
如果您正在使用 appsettings.json,请创建一个简单的 POCO class 来为您的连接字符串配置建模,如下所示:
public class ConnectionConfig
{
public string Analysis {get;set;}
}
在 Startup.cs
的 ConfigureServices 方法中添加这一行
services.Configure<ConnectionConfig>(Configuration.GetSection("ConnectionStrings"));
数据服务class
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();
}
}
我正在尝试在我的 .Net Core 应用程序中设置连接字符串,但我一直收到错误消息:
System.NullReferenceException: 'Object reference not set to an instance of an object.'
我尝试将以下内容添加到 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: 'Object reference not set to an instance of an object.'
我使用了以下资源:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
Get connection string from App.config
但我遗漏了一些东西。我只设置了一次连接字符串,它不在 .Net Core 中,所以对其他人来说很明显。
如果您正在使用 appsettings.json,请创建一个简单的 POCO class 来为您的连接字符串配置建模,如下所示:
public class ConnectionConfig
{
public string Analysis {get;set;}
}
在 Startup.cs
的 ConfigureServices 方法中添加这一行services.Configure<ConnectionConfig>(Configuration.GetSection("ConnectionStrings"));
数据服务class
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();
}
}