猿问

发布操作错误

我正在尝试将一些数据发布到我的 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: 数据库连接从哪里来?控制器?


一只甜甜圈
浏览 159回答 1
1回答
随时随地看视频慕课网APP
我要回答