Search code examples
c#odata

OdataReader has OdataEntry with empty Odataproperties C# / OdataLib


I am using odata library to read OData feed but Entry doenst show me any properties.

using (ODataMessageReader messageReader = new ODataMessageReader(message.GetResponse(), new ODataMessageReaderSettings()))
{
    ODataReader reader = messageReader.CreateODataFeedReader();
    while (reader.Read())
        while (reader.Read())
        {
            switch (reader.State)
            {
                case ODataReaderState.EntryStart:
                {
                    ODataEntry entry = (ODataEntry)reader.Item;
                    var atomMetadata = entry.Properties.ToList(); 
                    break;
                }
             }
         }
}

here var atomMetadata = entry.Properties.ToList(); no properties are returned.


Solution

  • "ODataReaderState.EntryEnd" will return properties and not "ODataReaderState.EntryStart"

    using (ODataMessageReader messageReader = new ODataMessageReader(message.GetResponse(), new ODataMessageReaderSettings()))
    {
        ODataReader reader = messageReader.CreateODataFeedReader();
        while (reader.Read())
            while (reader.Read())
            {
                switch (reader.State)
                {
                    case ODataReaderState.EntryEnd:
                    {
                        ODataEntry entry = (ODataEntry)reader.Item;
                        var atomMetadata = entry.Properties.ToList(); 
                        break;
                    }
                 }
             }
    }