Odata客户端代码生成器无法生成.cs文件

Odata客户端代码生成器无法生成.cs文件,odata,asp.net-web-api2,Odata,Asp.net Web Api2,我有一个WPF客户端,我正在使用Odata客户端代码生成器使用WebAPI2创建Odata服务的客户端 我遵循了本教程: 问题是我得到了一个空的.cs文件,该文件是按照教程中描述的步骤创建的(上面给出了链接) 我使用的MatadataDocumentUri是: 我有什么遗漏吗 以下是使用$Metadata的元数据: <edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">

我有一个WPF客户端,我正在使用Odata客户端代码生成器使用WebAPI2创建Odata服务的客户端

我遵循了本教程:

问题是我得到了一个空的.cs文件,该文件是按照教程中描述的步骤创建的(上面给出了链接)

我使用的MatadataDocumentUri是:

我有什么遗漏吗

以下是使用$Metadata的元数据

<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0">
<Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="RestApiServer.Models">
<EntityType Name="User">
<Key>
<PropertyRef Name="UserId"/>
</Key>
<Property Name="UserId" Type="Edm.Int32" Nullable="false"/>
<Property Name="UserName" Type="Edm.String"/>
<Property Name="UserType" Type="Edm.String"/>
<NavigationProperty Name="UserAddress" Relationship="RestApiServer.Models.RestApiServer_Models_User_UserAddress_RestApiServer_Models_UserAddress_UserAddressPartner" ToRole="UserAddress" FromRole="UserAddressPartner"/>
</EntityType>
<EntityType Name="UserAddress">
<Property Name="UserId" Type="Edm.Int32" Nullable="false"/>
<Property Name="UserAddress1" Type="Edm.String"/>
<NavigationProperty Name="User" Relationship="RestApiServer.Models.RestApiServer_Models_UserAddress_User_RestApiServer_Models_User_UserPartner" ToRole="User" FromRole="UserPartner"/>
</EntityType>
<Association Name="RestApiServer_Models_User_UserAddress_RestApiServer_Models_UserAddress_UserAddressPartner">
<End Type="RestApiServer.Models.UserAddress" Role="UserAddress" Multiplicity="0..1"/>
<End Type="RestApiServer.Models.User" Role="UserAddressPartner" Multiplicity="0..1"/>
</Association>
<Association Name="RestApiServer_Models_UserAddress_User_RestApiServer_Models_User_UserPartner">
<End Type="RestApiServer.Models.User" Role="User" Multiplicity="0..1"/>
<End Type="RestApiServer.Models.UserAddress" Role="UserPartner" Multiplicity="0..1"/>
</Association>
</Schema>
<Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="Default">
<EntityContainer Name="Container" m:IsDefaultEntityContainer="true">
<EntitySet Name="Users" EntityType="RestApiServer.Models.User"/>
<EntitySet Name="UserAddresses" EntityType="RestApiServer.Models.UserAddress"/>
<AssociationSet Name="RestApiServer_Models_User_UserAddress_RestApiServer_Models_UserAddress_UserAddressPartnerSet" Association="RestApiServer.Models.RestApiServer_Models_User_UserAddress_RestApiServer_Models_UserAddress_UserAddressPartner">
<End Role="UserAddressPartner" EntitySet="Users"/>
<End Role="UserAddress" EntitySet="UserAddresses"/>
</AssociationSet>
<AssociationSet Name="RestApiServer_Models_UserAddress_User_RestApiServer_Models_User_UserPartnerSet" Association="RestApiServer.Models.RestApiServer_Models_UserAddress_User_RestApiServer_Models_User_UserPartner">
<End Role="UserPartner" EntitySet="UserAddresses"/>
<End Role="User" EntitySet="Users"/>
</AssociationSet>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>

您的元数据实际上是V3格式的元数据。请检查: $metadata,根目录为:

<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">

美元的元数据



因此,您的服务实际上是一个OData V3服务,我们的客户端生成器还不支持该服务。

您可以检查您的服务中是否可以访问该服务吗?该工具实际上是使用~/$metadata生成代理文件。嗨,zoe,是的,它可以在我的服务中访问。但是,当我将其用作MetadataDocumentUri时,生成的.cs文件只包含几行注释语句,没有其他内容。生成cs文件时,您是否收到任何错误或警告?你能检查你的vs输出吗?或者你能在这里发布你的元数据吗?我可以试一试。没有错误,但我得到一个警告,即运行转换:根元素的元素“edmx:edmx”是意外的。根元素应该是Edmx。您的服务是基于OData v3还是v4?代码生成器仅支持V4。你能在这里发布你的元数据吗?有很多原因会导致codegen失败,因此如果有元数据,调试会更容易。那么这是否意味着V4没有脚手架??V4有脚手架。不确定是否符合您的要求。谢谢您的时间。:)
<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">