我的问题是以下代码在启动时无法注册数据存储。这是应用程序响应中我得到的具体“错误”声明:
An unhandled exception occurred while processing the request.
InvalidOperationException: No data stores are configured. Configure a data store by overriding OnConfiguring in your DbContext class or in the AddDbContext method when setting up services.
Microsoft.Data.Entity.Storage.DataStoreSelector.SelectDataStore(ServiceProviderSource providerSource)
在 ConfigureServices(IServiceCollection services) 中,我尝试在 lambda 中为我的 DbContext 指定 DbContextOptions。代码如下:services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<MyDbContext>(
options =>
options.UseSqlServer(Configuration.Get("Data:DefaultConnection:ConnectionString"))
);
在我的DbContext中,我有一个构造函数,它将选项发送到基类,代码:
public MyContext(DbContextOptions options) : base(options) { }
我的配置文件config.json,在启动时被读取,包含了这个连接字符串:
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=MyDbName;Trusted_Connection=True;MultipleActiveResultSets=True;"
}
}
我以前使用过
protected override void OnConfiguring(DbContextOptions options)
{
options.UseSqlServer(Startup.Configuration.Get("Data:DefaultConnection:ConnectionString"));
}
我已经成功地在我的DbContext中注册了数据存储并且它可以正常工作,但我更愿意使用lambda方式。
如果需要更多信息,我会提供的。