C# Can';t在WebApi OData中调用单个查询GET
我有带OData控制器的web api。模型是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
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
更改为justUserDto