【发布时间】:2016-07-31 09:44:06
【问题描述】:
我正在使用启用了 OData(使用 ODataController)的 ASP.Net WebApi。
我有一个要求要完成,我需要添加一个自定义操作,但它不起作用,看起来我错过了一些东西,谁能告诉我我做错了什么?
提前致谢!!
以下是我的实现的代码 sn-ps。
自定义操作
[HttpGet]
[Queryable]
public IQueryable<User> PersonalInfo()
{
int UserID = this.UserTicket.User_ID;
return _users.Queryable().Where(d => d.UserID == UserID);
}
在 ODataConfig 中添加操作
builder.EntitySet<User>(typeof(User).Name);
ActionConfiguration personalInfo = builder.Entity<User>().Collection.Action("PersonalInfo");
生成的元数据
<FunctionImport Name="PersonalInfo" IsBindable="true" m:IsAlwaysBindable="true">
<Parameter Name="bindingParameter" Type="Collection(Models.User)" Nullable="false"/>
</FunctionImport>
编辑 1
我错过了,以下是我从预期 url 收到的错误:
未找到与请求 URI 'http://domain/odata/User/PersonalInfo' 匹配的 HTTP 资源。
【问题讨论】:
-
在什么情况下不工作?
-
您是否尝试过这个网址而不是
http://domain/odata/PersonalInfo? -
@DavidG 给出“找不到资源”!!
-
@DavidG 虽然我在同一个控制器中的第二个自定义 POST 操作工作正常,但不知道为什么会失败!!
标签: c# asp.net-web-api odata metadata config