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

时间:2019-07-17 12:13:16

标签: post asp.net-core odata action

我要在注销时从数据库中删除用户关系。因此,我只需要从前端触发,这样我就可以从HttpContext获取用户关系。该方法位于我的应用程序的Main-Entity-Controller中。这样做的原因是,仅由于这种方法,我将不得不为实体“ UserRelation”编写一个控制器。

我的删除动作如下

在控制器中:

[HttpPost]
public async Task<IActionResult> RemoveUser()
{
   var userRelation = dbContext.UserRelation.FindAsync(GetId());

   //some validation

   dbContext.Remove(userRelation );
   await dbContext.SaveAsync();

   return Ok();
}

在ModelBuilder中

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

API调用

/odata/MainController/RemoveUser

邮递员呼叫总是以404结尾。如何访问此方法。在所有错误的做法中,都是在此控制器中设置方法吗?

1 个答案:

答案 0 :(得分:0)

找到了解决方案:

如果您这样设置操作,则效果很好。

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