Я вижу это сообщение об ошибке, что свойство не может быть найдено с помощью $expand
запроса OData, но я могу подтвердить, что $metadata
свойство существует.
Не удалось найти свойство с именем 'name 'on type' MyNS.Organization '
Вот URL-адрес конечной точки odata, вызывающей ошибку: /odata/entity?$expand=organization($select=primaryName)
В моем урезанном коде я использую параметр OData синтаксический анализатор, чтобы попытаться проанализировать select / expand, представляющий этот запрос:
var query = new Dictionary<string, string> { { "$expand", "organization($select=name)" } };
var parser = new ODataQueryOptionParser(model, model.FindDeclaredType("MyNS.Entity"),
model.FindDeclaredEntitySet("Entities"), query);
var selectExpand = parser.ParseSelectAndExpand(); // throws error
Мне нужно вручную построить мою модель с нетрадиционным подходом ( ссылка ). Я попытался определить тип «Организация» как ComplexType
или EntityType
с той же проблемой.
Вот мои метаданные модели (edmx).
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="MyNS">
<EntityType Name="Entity">
<NavigationProperty Name="organization" Type="MyNS.Organization"/>
</EntityType>
<ComplexType Name="Organization">
<Property Name="name" Type="Edm.String"/>
</ComplexType>
<EntityContainer Name="Container">
<EntitySet Name="Entities" EntityType="MyNS.Entity"/>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
Я не знаю, чего мне здесь не хватает, поэтому спасибо за любую помощь или руководство.