是否可以使用 Odata 自定义操作 POST 作为触发器



我想在注销时从数据库中删除用户关系。因此,我只需要一个来自前端的触发器,这样我就可以从 HttpContext 中获取用户关系。该方法位于我的应用程序的主实体控制器中。这样做的原因是,我必须为实体"UserRelation"编写一个控制器,只是因为这种方法。

我的删除操作如下所示

在控制器中:

[HttpPost]
public async Task<IActionResult> RemoveUser()
{
   var userRelation = dbContext.UserRelation.FindAsync(GetId());
   //some validation
   dbContext.Remove(userRelation );
   await dbContext.SaveAsync();
   return Ok();
}

在模型构建器中

builder.EntityType<MainEntity>().Action("RemoveUser");

接口调用

/odata/MainController/RemoveUser

邮递员呼叫总是以 404 结尾。我怎样才能访问这种方法。在这个控制器中设置方法,这都是不好的做法吗?

找到了一个解决方案:

如果这样设置操作,则工作正常。

builder.EntityType<MainEntity>().Collection.Action("RemoveUser");

最新更新