C# Can';t在WebApi OData中调用单个查询GET

C# Can';t在WebApi OData中调用单个查询GET,c#,asp.net-web-api,odata,asp.net-web-api-routing,C#,Asp.net Web Api,Odata,Asp.net Web Api Routing,我有带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([FromOD

我有带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);
[启用查询]
公共IQueryable Get();
[启用查询]
公共SingleResult 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());
ODataModelBuilder=new ODataConventionModelBuilder();
builder.EntitySet(“用户”).EntityType.HasKey(e=>e.UserDtoId.Name=“用户”;
config.MapODataServiceRoute(
routeName:“ODataRoute”,
routePrefix:“odata”,
模型:builder.GetEdmModel());
当我尝试调用odata/Users(123)时,odata会尝试调用first get而不是带有键的get,并返回表中的所有记录。当我注释掉第一个get方法时,对于这个URI访问根本没有get方法。我哪里出错了


我试图使[ODataRoute]不会改变任何东西。

在代码中,您的两个函数是
Get()
GetUser(int-key)
它们都应该是“
Get


也不确定它是否重要,但对于
Get(int)
one,如果它仍然不起作用,请尝试将
SingleResult
更改为仅
UserDto
在代码中,您的两个函数是
Get()
GetUser(int-key)
它们都应该是“
Get

也不确定它是否重要,但是对于
Get(int)
one,如果它仍然不起作用,请尝试将
SingleResult
更改为just
UserDto