OData поддерживает два маршрута, которые возвращают одну сущность и коллекцию - PullRequest
0 голосов
/ 16 января 2020

Я хотел бы определить два маршрута, чтобы я мог получить доступ к своим сущностям. Приведенный ниже пример кода возвращает исключение всякий раз, когда я пытаюсь получить доступ к файлу. json.

Неверный запрос - ошибка в синтаксисе запроса.

всего 2 маршрута, которые мне нужны;

  • / EventLog (MeetingId = {keyMeetingId}, Id = {keyId}) -> Возвращает одну сущность
  • Поиск (MeetingId = {keyMeetingId} -> Возвращает несколько записей

Builder;

var eventLog = builder.EntitySet<EventLog<object>>(nameof(EventLog<object>)).EntityType;
eventLog.HasKey(x => new { x.MeetingId, x.Id });

var eventLogSearch = eventLog.Collection
   .Action("Search")
   .ReturnsCollectionFromEntitySet<EventLog<object>>(nameof(EventLog<object>));

eventLogSearch.Parameter<string>("MeetingId")
.Required();

Запуск:

 app.UseMvc(
                builder =>
                {
                    builder.ServiceProvider.GetRequiredService<ODataOptions>()
                    .UrlKeyDelimiter = Parentheses;
                    builder.Count();
                    builder.Expand()
                        .Select()
                        .OrderBy()
                        .Filter();
                    builder.MapVersionedODataRoutes("odata", "api", modelBuilder.GetEdmModels());

                    builder.EnableDependencyInjection();
                });

Я пробовал несколько других решений, но они приводят либо к 404 или ошибка, как указано выше. Есть предложения по поддержке обоих маршрутов?

Я использую asp. net core 2.2

...