odatacontroller example delete custom c#-4.0 asp.net-web-api odata asp.net-web-api-routing odata4j

c# 4.0 - example - No se encontró ninguna convención de enrutamiento para seleccionar una acción para la ruta OData con la plantilla ''~/entityset''



odatacontroller (3)

Tengo dos métodos de acción Odata definidos. El uno con parámetro se invoca mientras que el otro sin parámetro no se invoca y arroja error. No se encontró ninguna convención de enrutamiento para seleccionar una acción para la ruta OData con la plantilla ''~ / entityset''.

Aquí está el código de mis métodos de acción

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

La consulta que estoy usando es la siguiente

http://bureauservice/api/odata/UserOdata - Doesnt work http://bureauservice/api/odata/UserOdata(1) - works

¿Podría alguien decirme por qué el primer enlace no funciona?



Cambie el nombre del método que devuelve entityset a " Get[EntitySetName] " u " Get ".

Cambiar de

public IQueryable<User> GetUser()

A

public IQueryable<User> GetUserOdata()

O

public IQueryable<User> Get()


Establezca el nombre de la primera acción como GetUsers (plural) porque obtiene la colección completa de usuarios, mientras que en el segundo está solicitando un único usuario.