OData路径模板不是有效的OData路径模板

Oja*_*low 4 c# rest odata asp.net-web-api2

我有一个具有ODataRoute的HttpGet方法

["Users({userId}/Tags)"]
Run Code Online (Sandbox Code Playgroud)

userId是一个字符串,方法名称是UserTags。控制器是UsersController

当我运行该应用程序时,出现以下错误:

Users({userId})/Tags控制器中“ UserTags”操作上的路径模板Users不是有效的OData路径模板。Tags在OData路径模板中 找到了一个未解决的路径段Users({userId})/Tags

GWi*_*Wam 7

的约束ODataRoute非常严格,您的用户实体必须具有名为“ Tags”的集合属性才能工作。

通过以下代码,我可以正常工作:

public class UserController : ODataController
{
    [HttpGet]
    [System.Web.OData.Routing.ODataRoute("User({userId})/Tags")]
    public IHttpActionResult GetTags([FromODataUri]int userId)
    {
        //...
    }
}

public class User
{
    [Key]
    public int Id { get; set; }
    public List<Tag> Tags { get; set; }
}
Run Code Online (Sandbox Code Playgroud)