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?
Diz que você não adicionou algo assim
como em
você precisa configurar seu
DbContext
inProgram.cs
Feito isso, você precisa injetar
ReactWithASPDbContext
no seu controlador em vez de criá-lo manualmente