C# 值不能为null。参数名称connectionString
大家好,我在将数据保存到数据库时遇到问题。我正在使用C# 值不能为null。参数名称connectionString,c#,entity-framework,asp.net-core,C#,Entity Framework,Asp.net Core,大家好,我在将数据保存到数据库时遇到问题。我正在使用EF和.netcore。我已经在下面提供了我的示例代码: 这里到底出了什么问题?我在ConfigureServices中为MyContext提供了services.AddDbContext public class MyContext: DbContext { private IConfigurationRoot _config; public MyContext(IConfigurationRoot config)
EF
和.netcore
。我已经在下面提供了我的示例代码:
这里到底出了什么问题?我在ConfigureServices
中为MyContext提供了services.AddDbContext
public class MyContext: DbContext
{
private IConfigurationRoot _config;
public MyContext(IConfigurationRoot config)
{
this._config = config;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
base.OnConfiguring(optionsBuilder);
optionsBuilder.UseSqlServer(_config["Data:ConnectionString"]);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
}
}
appsettings.json
{
"Data": {
"ConnectionString": "Data Source=MyDataSource;Initial Catalog=MyCatalog;Trusted_Connection=True"},
另一类:
public class AnotherClass
{
private MyContext mycontext;
private IConfigurationRoot configurationRoot;
public AnotherClass()
{
var builder = new ConfigurationBuilder();
configurationRoot = builder.Build();
mycontext = new MyContext(configurationRoot);
}
public MyMethod()
{
try
{
//object to be saved using EF
var saveObj = new SaveObj()
{
//pretend to have initialize some object here to save
};
mycontext.SaveObj.Add(saveObj);
mycontext.SaveChanges();
}
catch(Exception e)
{
//Throws an exception. Value cannot be null. Parameter name: connectionString
}
}
}
看看这个:
我认为您的appsettings.json应该如下所示:
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=MyDataSource;Initial Catalog=MyCatalog;Trusted_Connection=True"
}
}
跳过“数据”部分