我正在尝试将一些数据发布到我的 API。
这是我的回购:
public async Task Create(CustomerMaster entity)
{
await trainContext.CustomerMaster.AddAsync(entity);
await trainContext.SaveChangesAsync();
}
这里是我的控制器:
public async Task<IActionResult> Post([FromBody]CustomerMaster entity)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
await customerMasterRepository.Create(entity);
return CreatedAtAction(nameof(GetById), new { id = entity.Id }, entity);
}
当我试图用邮递员寄东西时,我总是会得到 500 的回报。
我调试它并在我的 repo 中添加实体,但它实际上从未发布在数据库中。
我错过了什么吗?还是我做错了什么?
编辑1:
private readonly TrainContext trainContext;
public CustomerMasterRepository(TrainContext context)
{
trainContext = context;
}
编辑 2:使用 EF,没有回购
所以我在我的控制器中有:
private TrainContext context;
public CustomerMasterController()
{
context = new TrainContext();
}
在我的 POST 操作中:
[HttpPost]
public async Task<IActionResult> Post(CustomerMaster entity)
{
if (entity == null)
{
return BadRequest();
}
await context.CustomerMaster.AddAsync(entity);
// await context.SaveChangesAsync();
return CreatedAtRoute("GetCustomer",new { id = entity.Code }, entity);
}
而且我还是拿回了500。我真的不明白为什么?我调试它并且没有使用我在实体中发布的内容。
编辑3:
我使用 API 控制器和 EF 生成的动作创建了这个控制器,在这种情况下,当我尝试 GET 动作时,我得到 500。
现在我真的很困惑 500: 数据库连接从哪里来?控制器?
相关分类