【发布时间】:2018-02-21 13:46:10
【问题描述】:
我正在尝试在我的 .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 中,因此对其他人来说可能很明显。
【问题讨论】:
-
哪一行出错了?
NULL是什么对象? -
.NET 核心的配置方式不同。你有
appsettings.json吗?推荐的方法是将 appsettings 加载到您的IConfigurationRoot对象中并将其注入您的类中,然后从那里获取连接字符串 -
@Shyju 我在 c# 代码的以下行中得到对象为空:
using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["Analysis"].ConnectionString)) -
@Jonesopolis 我确实尝试将连接字符串添加到 appsettings.json,如我上面的代码所示。我还没有尝试通过
IConfigurationRoot加载它 -
@Jonesopolis 我想为此使用Options Pattern 吗?
标签: c# asp.net asp.net-mvc .net-core dapper