簡體   English   中英

無法在WebApi OData中調用單個查詢GET

[英]Can't invoke single query GET in WebApi OData

我有帶OData控制器的Web API。 型號是

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 / Users(123)時,odata嘗試首先調用不帶鍵的get並返回表中的所有記錄。 當我注釋掉第一個get方法時,根本沒有用於該URI訪問的GET方法。 我在哪里弄錯了?

我嘗試使其[ODataRoute]不變。

在您的代碼中,您的兩個函數分別是Get()GetUser(int key)它們都應為' Get '

也不確定是否重要,但對於Get(int) ,如果仍然SingleResult<UserDto>正常工作,請嘗試將SingleResult<UserDto>更改為UserDto

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM