$ expand = сбой в OData версии 4 - PullRequest
0 голосов
/ 16 февраля 2019

Для запроса OData версии 4 (отредактированные части):

https://myurl/PROTEIN_LOT?$filter=(Barcode eq 'PRO27-1') & $ expand = PROJECT

Я получаю исключение:

Microsoft.OData.Core.ODataException: 'При записи ответа JSON должна быть указана пользовательская модель, а набор сущностей и тип сущностей должны быть переданы в ODataMessageWriter.Метод CreateODataEntryWriter или ODataFeedAndEntrySerializationInfo должны быть установлены для записываемой ODataEntry или ODataFeed. '

Это происходит во второй раз, когда читатель.исключение.Первая итерация в порядке и возвращает правильный URI.

Если $ expand = отсутствует в запросе, то он работает нормально.Мы используем Microsoft.Data.OData 5.6.3.0.

(пытаемся свести только к коду ключа):

ODataMessageReaderSettings settings = new ODataMessageReaderSettings { MessageQuotas = { MaxReceivedMessageSize = maxMessageSize } };
ODataMessageReader messageReader = new ODataMessageReader(responseMessage, settings, model);

while (reader.Read())
    switch (reader.State)
    {
        case ODataReaderState.NavigationLinkStart:
            ODataNavigationLink navLink = (ODataNavigationLink)reader.Item;
            navName = navLink.Name;
            if (resultEntryOn != null && string.IsNullOrEmpty(resultEntryOn.UriEntry))
            {
                // ERROR HERE - the second time it's called
                string urlentry = navLink.Url.AbsoluteUri;
                resultEntryOn.UriEntry = urlentry.Substring(0, urlentry.LastIndexOf("/"));
            }
            break;

        // other case items - all work
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...