Я пытаюсь добавить новый путь к моему веб-сервису odata, и теперь я полностью сбит с толку.
Если у меня есть только один метод - все работает просто замечательно. Вот мой код
//webapiconfig.cs
config.MapHttpAttributeRoutes();
config.Filter().Expand().Select().OrderBy().MaxTop(null).Count();
var userInfo = builder.EntitySet<UserInfo>("Users");
userInfo.EntityType.HasKey(x => new { x.TN });
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: "odata/",
model: builder.GetEdmModel());
//usercontroller
[EnableQuery(
EnableConstantParameterization = true,
PageSize = 100,
AllowedQueryOptions = AllowedQueryOptions.Top | AllowedQueryOptions.Filter | AllowedQueryOptions.Skip,
AllowedArithmeticOperators = AllowedArithmeticOperators.None,
AllowedLogicalOperators = AllowedLogicalOperators.Equal | AllowedLogicalOperators.Or | AllowedLogicalOperators.And,
AllowedFunctions = AllowedFunctions.StartsWith | AllowedFunctions.ToLower)]
[ODataRoute("Users/UsersInfo")]
public IQueryable<UserInfo> GetUserInfo(ODataQueryOptions<UserInfo> queryOptions)
{
//business logic
}
Если я пытаюсь добавить новый метод - он не отвечает вообще
[EnableQuery]
[ODataRoute("Users/OtherUsers")]
public IQueryable<UserInfo> GetOtherUser() {
//business logic
}
Я пытался играть с атрибутом ODataRoute, но безуспешно. В лучшем случае я получаю «Было найдено несколько действий, которые соответствуют ошибке запроса».
Что меня беспокоит - веб-сервис отвечает на http://localhost/odata/Users/ маршрут и возвращает те же результаты для http://localhost/odata/Users/UsersInfo и http://localhost/odata/Users/OtherUsers.
Я думаю, что допустил ошибку в webapiconfig, но не могу понять, что именно