我正在尝试将 OdataBreezeJSSample 调整到我的项目中。元数据被调用和填充,但我的查询:
var people = breeze.EntityQuery
.from("Users")
.using(manager)
.select('Email')
.execute()
.then(function() {
})
.catch(function(err) {
var isEmpty = manager.metadataStore.isEmpty();
});
失败并显示错误消息:
错误:无法通过名称找到“类型”:“用户:#Default”。请务必先执行查询或调用 fetchMetadata。
检查 metadataStore 在我的项目中显示为:
检查有效的样本,元数据看起来不同:
据我所知,我的设置代码与示例匹配。我也使用相同版本的库。查询永远不会触发,唯一的调用是获取 $metadata。
我曾尝试调用 fetchMetadata(),但它只是创建了对 /$metadata 的重复调用。
什么可能导致此错误消息?
更新:
这是 EDMX。我已经确认工作示例中只有 1 个模式。我无法弄清楚这个额外的模式是从哪里生成的。生成 EDM 的所有代码都与示例匹配。
<xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
<edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
<Schema Namespace="SCATowel.Models" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityType Name="User">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="Name" Type="Edm.String" />
<Property Name="Login" Type="Edm.String" />
<Property Name="Email" Type="Edm.String" />
<Property Name="IsAppAdmin" Type="Edm.Boolean" Nullable="false" />
<NavigationProperty Name="Sites" Relationship="SCATowel.Models.SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartner" ToRole="Sites" FromRole="SitesPartner" />
<NavigationProperty Name="Settings" Relationship="SCATowel.Models.SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartner" ToRole="Settings" FromRole="SettingsPartner" />
</EntityType>
<EntityType Name="Setting">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="SiteListLocation" Type="Edm.String" />
<NavigationProperty Name="User" Relationship="SCATowel.Models.SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartner" ToRole="User" FromRole="UserPartner" />
</EntityType>
<EntityType Name="Site">
<Key>
<PropertyRef Name="Id" />
</Key>
<Property Name="Id" Type="Edm.Int32" Nullable="false" />
<Property Name="Title" Type="Edm.String" />
<Property Name="Url" Type="Edm.String" />
<Property Name="IsSiteAdmin" Type="Edm.Boolean" Nullable="false" />
<Property Name="IsSiteOwner" Type="Edm.Boolean" Nullable="false" />
<NavigationProperty Name="User" Relationship="SCATowel.Models.SCATowel_Models_Site_User_SCATowel_Models_User_UserPartner" ToRole="User" FromRole="UserPartner" />
</EntityType>
<Association Name="SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartner">
<End Type="SCATowel.Models.Site" Role="Sites" Multiplicity="*" />
<End Type="SCATowel.Models.User" Role="SitesPartner" Multiplicity="0..1" />
</Association>
<Association Name="SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartner">
<End Type="SCATowel.Models.Setting" Role="Settings" Multiplicity="*" />
<End Type="SCATowel.Models.User" Role="SettingsPartner" Multiplicity="0..1" />
</Association>
<Association Name="SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartner">
<End Type="SCATowel.Models.User" Role="User" Multiplicity="0..1" />
<End Type="SCATowel.Models.Setting" Role="UserPartner" Multiplicity="0..1" />
</Association>
<Association Name="SCATowel_Models_Site_User_SCATowel_Models_User_UserPartner">
<End Type="SCATowel.Models.User" Role="User" Multiplicity="0..1" />
<End Type="SCATowel.Models.Site" Role="UserPartner" Multiplicity="0..1" />
</Association>
</Schema>
<Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityContainer Name="Container" m:IsDefaultEntityContainer="true">
<EntitySet Name="Users" EntityType="SCATowel.Models.User" />
<EntitySet Name="Settings" EntityType="SCATowel.Models.Setting" />
<EntitySet Name="Sites" EntityType="SCATowel.Models.Site" />
<AssociationSet Name="SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartnerSet" Association="SCATowel.Models.SCATowel_Models_User_Sites_SCATowel_Models_Site_SitesPartner">
<End Role="SitesPartner" EntitySet="Users" />
<End Role="Sites" EntitySet="Sites" />
</AssociationSet>
<AssociationSet Name="SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartnerSet" Association="SCATowel.Models.SCATowel_Models_User_Settings_SCATowel_Models_Setting_SettingsPartner">
<End Role="SettingsPartner" EntitySet="Users" />
<End Role="Settings" EntitySet="Settings" />
</AssociationSet>
<AssociationSet Name="SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartnerSet" Association="SCATowel.Models.SCATowel_Models_Setting_User_SCATowel_Models_User_UserPartner">
<End Role="UserPartner" EntitySet="Settings" />
<End Role="User" EntitySet="Users" />
</AssociationSet>
<AssociationSet Name="SCATowel_Models_Site_User_SCATowel_Models_User_UserPartnerSet" Association="SCATowel.Models.SCATowel_Models_Site_User_SCATowel_Models_User_UserPartner">
<End Role="UserPartner" EntitySet="Sites" />
<End Role="User" EntitySet="Users" />
</AssociationSet>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>