2017-09-26 38 views
1

我有帶有OData控制器的web api。模型是無法在WebApi OData中調用單個查詢GET

public class UserDto 
{ 
    public int UserDtoId {get;set;} 
    public string Name {get;set;} 
} 

在控制器我有兩個方法

[EnableQuery] 
public IQueryable<UserDto> Get(); 

[EnableQuery] 
public SingleResult<UserDto> GetUser([FromODataUri] int key); 

OData的配置是:

 ODataModelBuilder builder = new ODataConventionModelBuilder(); 
    builder.EntitySet<UserDto>("Users").EntityType.HasKey(e=>e.UserDtoId).Name = "User"; 
    config.MapODataServiceRoute(
    routeName: "ODataRoute", 
    routePrefix: "odata", 
    model: builder.GetEdmModel()); 
當我嘗試調用的OData /用戶(123)

,所述的OData首先嚐試調用得不到一個鑰匙,並從表中返回所有記錄。當我註釋掉第一個get方法時,根本沒有GET方法來訪問這個URI。我犯了什麼錯誤?

我試圖讓[ODataRoute]它不會改變任何東西。

回答

0

在你的代碼,你的兩個功能是Get()GetUser(int key) 他們都應該是「Get

而且不知道它的問題,但是對於Get(int)之一,如果它仍然不工作,請嘗試更改SingleResult<UserDto>到只是UserDto