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

OData path template is not a valid OData path template

我有一个具有 ODataRoute 的 HttpGet 方法

["Users({userId}/Tags)"]

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

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

The path template Users({userId})/Tags on the action 'UserTags' in controller Users is not a valid OData path template. Found an unresolved path segment Tags in the OData path template Users({userId})/Tags.

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; }
}