不知道我在这里缺少什么,但我无法从我的.net核心应用程序中的appsettings.json获取值.我的appsettings.json为:
{
"AppSettings": {
"Version": "One"
}
}
Run Code Online (Sandbox Code Playgroud)
启动:
public class Startup
{
private IConfigurationRoot _configuration;
public Startup(IHostingEnvironment env)
{
_configuration = new ConfigurationBuilder()
}
public void ConfigureServices(IServiceCollection services)
{
//Here I setup to read appsettings
services.Configure<AppSettings>(_configuration.GetSection("AppSettings"));
}
}
Run Code Online (Sandbox Code Playgroud)
模型:
public class AppSettings
{
public string Version{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
控制器:
public class HomeController : Controller
{
private readonly AppSettings _mySettings;
public HomeController(IOptions<AppSettings> settings)
{
//This is always null
_mySettings = settings.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
_mySettings永远是空的.这里有什么我想念的吗?
我一直在玩Dapper,但我不确定处理数据库连接的最佳方法.
大多数示例显示在示例类中创建的连接对象,甚至在每个方法中.但是我觉得在每个clss中引用连接字符串都是错误的,即使它是从web.config中提取的.
我的经验是使用DbDataContext或DbContext使用Linq to SQL或Entity Framework,所以这对我来说是新的.
使用Dapper作为我的数据访问策略时,如何构建我的Web应用程序?
我试图在我的.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;"
}
Run Code Online (Sandbox Code Playgroud)
我也试过像以前那样使用web.config .Net Core:
<connectionStrings>
<add name="Analysis" providerName="System.Data.SqlClient"
connectionString="Server=DESKTOP-MYSERVER;Database=MYDATABASE;User Id=sm;Password=Password123;"/>
Run Code Online (Sandbox Code Playgroud)
然后在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;
}
Run Code Online (Sandbox Code Playgroud)
两种方式都给我例外:
System.NullReferenceException:'对象引用未设置为对象的实例.'
我使用了以下资源:
https://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/intro
但我错过了一些东西.我只设置了一次连接字符串,它不在.Net Core中,因此对其他人来说可能是显而易见的.