asp.net-从 API 创建和保存新条目的核心最少步骤

asp.net-core least steps to create and save new entry from API

我想从我拥有的 API 中获取一些 post 查询参数并创建一个新条目。我想在不需要加载上下文或其他东西的情况下在方法中执行此操作。

namespace fais.printing_services.Controllers
{

    [Produces("application/json")]
    [Route("api/[controller]/[action]")]
    public class printController : Controller
    {
        private readonly IHostingEnvironment _appEnvironment;

        public printController(IHostingEnvironment appEnvironment)
        {
            _appEnvironment = appEnvironment;
        }
        /**/
        [HttpPost]
        public IActionResult request(string id="test_default", string url = "", string html = "")
        {
                print_job _print_job = new print_job();

                _print_job.html = html;
                _print_job.options = options; //json object string
                _print_job.url = url;

                using (ApplicationDbContext db = new ApplicationDbContext())
                {
                    db.print_job.Add(_print_job);
                    db.SaveChanges();
                }
            return Json(new
                {
                    save = true
                });
        }
    }
}

我只想创建一个新的 print_job 条目并在调用 API 和 return 一个 json 响应时保存它。

ApplicationDbContext添加到控制器构造函数中,它将自动注入(如果您的Startup.cslike recommeneded):

private readonly IHostingEnvironment _appEnvironment;
private readonly ApplicationDbContext _db;

public printController(IHostingEnvironment appEnvironment, ApplicationDbContext db)
{
    _appEnvironment = appEnvironment;
    _db = db;
}

[HttpPost]
public IActionResult request(string id="test_default", string url = "", string html = "")
{
    var _print_job = new print_job() 
    {
        html = html,
        options = options,
        url = url,
    }

    _db.print_job.Add(_print_job);
    _db.SaveChanges();

    return Json(new { save = true });
}