Ciao ragazzi Sto cercando di migrare da Asp.Net MVC 5 a. Applicazione Web Core 2.0.
Sono bloccato con un errore che dice:
Impossibile convertire da "stringa" a "Microsoft.EntityFrameworkCore.DbContextOptions"
Ottengo l'errore sopra riportato quando passo il mouse sopra la classe:
public class ExampleModelWrapper : DbContext
{
public ExampleModelWrapper()
: base("name=EXAMPLE_MODEL")
{
}
}
ExampleModelWrapper è un modello.
Ho fatto riferimento alla seguente domanda nello stack overflow: come posso implementare la stringa di connessione DbContext in .NET Core?
Ho la stringa di connessione in appsettings.json:
{
"ConnectionStrings": {
"EXAMPLE_MODEL": "Server=(localdb)\\mssqllocaldb;Database=aspnet-Monitoring-CCA7D047-80AC-4E36-BAEA-3653D07D245A;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
}
}
Ho fornito il servizio in startup.cs:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("EXAMPLE_MODEL")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
// Add application services.
services.AddTransient<IEmailSender, EmailSender>();
services.AddMvc();
}
Quale può essere la ragione per l'errore sopra riportato. Credo che una connessione venga stabilita con successo al database, poiché sta funzionando per il login e il flusso di registrazione di Identity Db. Sono anche perplesso su come o dove cambiare le connessioni per l'identità Db. Aiuto apprezzato, grazie !!
È necessario utilizzare il seguente costruttore nel tuo DbContext
public ExampleModelWrapper (DbContextOptions<ExampleModelWrapper> options)
: base(options)
{
}
All'interno dell'avvio, è necessario modificare quanto segue:
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("EXAMPLE_MODEL")));
al seguente:
services.AddDbContext<ExampleModelWrapper>(options =>
options.UseSqlServer(Configuration.GetConnectionString("EXAMPLE_MODEL")));
Fondamentalmente, è necessario specificare il DbContext
è necessario utilizzare.