我每晚使用Microsoft WebAPI OData支持$ expand和breeze 1.3.5来查询数据
当我使用breeze查询实体时: 通过breeze.EntityQuery.from(“事件”)。其中(“IncidentID”,“eq”,1).expand(“IncidentComments”);
电汇上的电话是GET / odata /事故?$ filter = IncidentID%20eq%201& $ expand = IncidentComments
使用IncidentComments集合从服务器正确返回结果但是当我查看从查询中重新调用的实体时,我正确地获得实体但没有NavigtaionProperty(IncidentComments),当我查看Incident实体上的metadataStore时在元数据
中看不到任何nvigationProperties只有dataProperties当我查看从服务器返回的odata元数据($ metadata)时,我可以看到导航属性在那里:
<EntityType Name="Incident">
<Key>
<PropertyRef Name="IncidentID" />
</Key>
<Property Name="IncidentID" Type="Edm.Int32" Nullable="false" />
<Property Name="IncidentType" Type="Edm.Int32" Nullable="false" />
<Property Name="Name" Type="Edm.String" />
<NavigationProperty Name="IncidentComments" Relationship="Stabilis.Situator.OpServerTypes.Stabilis_Situator_OpServerTypes_Incident_IncidentComments_Stabilis_Situator_OpServerTypes_IncidentComment_IncidentCommentsPartner" ToRole="IncidentComments" FromRole="IncidentCommentsPartner" />
从webapi返回的元数据有问题吗?
答案 0 :(得分:0)
是的,Web API OData中的元数据存在问题。 缺少支持这些导航的外键 !!!
WCF OData元数据提供FK信息......这就是Breeze使用这种OData源的原因。但是,在撰写本文时,Web API OData元数据中缺少FK信息。我们正在和团队讨论这件事。
我们希望有一些解决方案......也许是一种解决方法,告诉Breeze FK属性是什么。我们没有这方面的时间表。
请记住:这些是你正在玩的预发布微软位。