Я вставляю данные в базу данных в ядре .net, если ядро позволяет мне получать данные из API get, но в то время как я вставляю данные в базу данных, получаю ошибку.И это ошибка компиляции в Context.
Ошибка InvalidOperationException: для этого DbContext не настроен поставщик базы данных.Поставщик может быть настроен путем переопределения DbContext.При настройке метода или с помощью AddDbContext в поставщике услуг приложения.Если используется AddDbContext, то также убедитесь, что ваш тип DbContext принимает объект DbContextOptions в своем конструкторе и передает его базовому конструктору для DbContext.
Класс контекста
public class Context : DbContext
{
public Context(DbContextOptions<Context> options) : base(options)
{
}
public DbSet<Mplus> MpData { get; set; }
}
APIController
namespace MplusApi.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class MPlusController : ControllerBase
{
private Context _context;
public MPlusController(Context context) {
_context = context;
}
[HttpGet("{Ftemp}")]
public IActionResult Get(int Ftemp) {
using (var context = new Context())//Getting compilation error here
{
var mp = new Mplus()
{
Ftemp = Ftemp,
};
context.MpData.Add(mp);
context.SaveChanges();
}
return Ok();
}
}
Модель
public class Mplus
{
public int Ftemp { get; set; }
}
startup.cs
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<Context>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseMvc();
}
}