C# 4.0 找不到路由约定,无法使用模板“~/entityset”为OData路径选择操作
我定义了两种Odata操作方法。带有参数的一个将被调用,而另一个没有参数的将不会被调用并引发错误。找不到路由约定来为带有模板“~/entityset”的OData路径选择操作 下面是我的动作方法代码C# 4.0 找不到路由约定,无法使用模板“~/entityset”为OData路径选择操作,c#-4.0,asp.net-web-api,odata,asp.net-web-api-routing,odata4j,C# 4.0,Asp.net Web Api,Odata,Asp.net Web Api Routing,Odata4j,我定义了两种Odata操作方法。带有参数的一个将被调用,而另一个没有参数的将不会被调用并引发错误。找不到路由约定来为带有模板“~/entityset”的OData路径选择操作 下面是我的动作方法代码 [EnableQuery] public IQueryable<User> GetUser() { return db.Users; } // GET: odata/User(5) [EnableQuery] public
[EnableQuery]
public IQueryable<User> GetUser()
{
return db.Users;
}
// GET: odata/User(5)
[EnableQuery]
public SingleResult<User> GetUser([FromODataUri] int key)
{
return SingleResult.Create(db.Users.Where(user => user.Id == key));
}
有人能告诉我为什么第一个链接不起作用。您可能需要在第一个URL中添加括号:
http://bureauservice/api/odata/UserOdata()
如果您刚刚开始使用odata,那么ODataV4是一个很好的起点,因为它是OASIS标准,但v3不是
以下是v4版本的函数示例:
. 请更改返回entityset以获取[EntitySetName]或Get的方法的名称 从
public IQueryable<User> GetUser()
到
或
将第一个操作的名称设置为GetUsers复数,因为您将获得整个用户集合,而在第二个操作中,您将请求单个用户。链接已断开:
public IQueryable<User> GetUser()
public IQueryable<User> GetUserOdata()
public IQueryable<User> Get()