C# webapi中的OData路由
我正在尝试在Web Api中启用C# webapi中的OData路由,c#,.net,asp.net-web-api,odata,C#,.net,Asp.net Web Api,Odata,我正在尝试在Web Api中启用OData。我创建了OData路由和从ODataController继承的控制器,我想从我的应用程序中获取一些示例数据。这是我的密码: public class TicketController : BaseWebApiController //inherits from ODataController { [EnableQuery] public IQueryable<TicketModel> Get() {
OData
。我创建了OData
路由和从ODataController
继承的控制器,我想从我的应用程序中获取一些示例数据。这是我的密码:
public class TicketController : BaseWebApiController //inherits from ODataController
{
[EnableQuery]
public IQueryable<TicketModel> Get()
{
return (_ticketService.GetAll());
}
[EnableQuery]
public SingleResult<TicketModel> Get([FromODataUri] int id)
{
return (_ticketService.Get(id));
}
然后在App\u Start/WebApiConfig.cs
Register方法中调用ODataConfig.EnableOData(config)
问题是,当urlhttp://localhost:52074/api/Ticket
正确调用Get()
方法,url请求为http://localhost:52074/api/Ticket(1)
也调用Get()
而不是Get(1)
。我试图附加ODataRouting(({id})]
属性,但它所做的只是抛出一个带有消息的异常
“控制器中操作的路径模板不是有效的OData路径模板”
以前有人有过这个问题吗?有什么想法吗?谢谢你的帮助
这是我在这里的第一个问题,所以如果缺少什么,请告诉我
id
重命名为键
,然后http://localhost:52074/api/Ticket(1)
将路由到Get(1)
[ODataRoute(“客户({id})”)]
public static class ODataConfig
{
public static void EnableOData(HttpConfiguration config)
{
config.MapODataServiceRoute("odata", "api", GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer));
config.EnsureInitialized();
}
private static IEdmModel GetEdmModel()
{
var builder = new ODataConventionModelBuilder();
builder.EntitySet<TicketModel>("Ticket");
var edmModel = builder.GetEdmModel();
return edmModel;
}
}