Adding DbContextOptions in Startup.cs not registering data store

asp.net-core-mvc c# dependency-injection entity-framework entity-framework-core

Question

My problem is that the below code does not register a data store during startup. This is the specific "error" statement I get in the response from the application:

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)

In ConfigureServices(IServiceCollection services) I am trying to specify DbContextOptions for my DbContext in a lambda. Code:

services.AddEntityFramework(Configuration)
    .AddSqlServer()
    .AddDbContext<MyDbContext>(
        options =>
        options.UseSqlServer(Configuration.Get("Data:DefaultConnection:ConnectionString"))
    );

In my DbContext, I have a constructor which sends the option to base, code:

public MyContext(DbContextOptions options) : base(options) { }

My configuration file config.json, which is read at startup, contains this connectionstring:

"Data": {
    "DefaultConnection": {
        "ConnectionString": "Server=(localdb)\\MSSQLLocalDB;Database=MyDbName;Trusted_Connection=True;MultipleActiveResultSets=True;"
    }
}

I have previously used

protected override void OnConfiguring(DbContextOptions options)
{
    options.UseSqlServer(Startup.Configuration.Get("Data:DefaultConnection:ConnectionString"));

}

in my DbContext successfully. It registers the data store and it works properly, but I'd rather use the lambda way.

If there is any more information needed, I'll provide it.

1
10
8/25/2016 3:35:43 AM

Popular Answer

Are you injecting your context into your controller or wherever you are using it? I discovered that if you try to new up the context instead of injecting it, it does not use the configuration specified in Startup.cs

5
5/2/2015 9:03:18 PM


Related Questions





Related

Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow
Licensed under: CC-BY-SA with attribution
Not affiliated with Stack Overflow