我正在使用asp.net核心开发一个测试项目。 为了连接数据库,我使用实体框架。 我将appsetings.json文件添加到项目中,并如下更改连接字符串:
{
"ConnectionStrings": {
"DefaultConnection": "Server=.\\mihanrayan;Initial Catalog=SportsStore;User = sa; Password = 123456"
}
}
sql版本是:mssql 2008 r2
在startup.cs类中,我在下面添加代码:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration["Data:SportStoreProducts:ConnectionString"]));
services.AddTransient<IProductRepository, EFProductRepository>();
}
但是
options.UseSqlServer(
Configuration["Data:SportStoreProducts:ConnectionString"]));
返回此错误:
类型为“ System.ArgumentNullException”的异常发生在 Microsoft.EntityFrameworkCore.SqlServer.dll,但未在中处理 用户代码
其他信息:值不能为空。
答案 0 :(得分:1)
Configuration["Data:SportStoreProducts:ConnectionString"])
返回null。
"Data:SportStoreProducts:ConnectionString"
应该是
"ConnectionStrings:Defaultconnection"
答案 1 :(得分:1)
应如下图所示:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));