Estou tentando usar isso DbContext
em um POST
método para adicionar um registro.
O construtor do controlador com este método é o seguinte:
public CookieController(ILogger<CookieController> logger, ICookieRepository cookieRepository)
{
_logger = logger;
_cookieRepository = cookieRepository;
}
Aqui está o método:
[HttpPost(Name = "")]
public IEnumerable<Cookie> PostCookie([FromBody] Cookie data)
{
DbContextOptions<ReactWithASPDbContext> options = new DbContextOptions<ReactWithASPDbContext>();
ReactWithASPDbContext dbContext = new ReactWithASPDbContext(options);
// ...
}
A DbContext
classe fica assim:
public class ReactWithASPDbContext : DbContext
{
public ReactWithASPDbContext(DbContextOptions<ReactWithASPDbContext> options):
base(options)
{
}
// ...
}
Este é o Program.cs
código:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<ReactWithASPDbContext>(options => {
options.UseSqlServer(
construtor.Configuration["ConnectionStrings:ReactWithASPDbContextConnection"]); });
var app = builder.Build();
DbInitializer.Seed(app);
Este é o DbInitializer
método e funciona:
public static void Seed(IApplicationBuilder applicationBuilder)
{
ReactWithASPDbContext context =
applicationBuilder.ApplicationServices
.CreateScope()
.ServiceProvider
.GetRequiredService<ReactWithASPDbContext>();
// ...
}
O appsettings.json
tem este conteúdo:
"ConnectionStrings": {
"ReactWithASPDbContextConnection": "Server=
(localdb)\mssqllocaldb;Database=ReactWithASP;Trusted_Connection=True;MultipleActiveResultSets=True" }
Mas a configuração está gerando este erro:
Nenhum provedor de banco de dados foi configurado para este DbContext. Um provedor pode ser configurado substituindo o método 'DbContext.OnConfiguring' ou usando 'AddDbContext' no provedor de serviços de aplicativo. Se 'AddDbContext' for usado, certifique-se também de que seu tipo DbContext aceita um objeto DbContextOptions em seu construtor e o passa para o construtor base para DbContext.
Estou assumindo que não preciso recriar o material init no Program.cs
arquivo que cria um IApplicationBuilder
etc. Deve haver uma maneira de transmitir o contexto depois de criado, certo?