Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net web api asp.net webapi odata$元数据中缺少反向属性_Asp.net Web Api_Odata_Breeze_Jaydata - Fatal编程技术网

Asp.net web api asp.net webapi odata$元数据中缺少反向属性

Asp.net web api asp.net webapi odata$元数据中缺少反向属性,asp.net-web-api,odata,breeze,jaydata,Asp.net Web Api,Odata,Breeze,Jaydata,在两个实体之间有非常简单的关系,我试图用asp.net webapi odata控制器公开它们,但似乎$metadata有问题 在$metadata上运行jaydatasvcutil.exe时,我收到警告:inverseProperty other side missing 当我使用breezejs loadNavigationProperty时,我得到了类似的错误 即使是官方的例子,我也有这个问题。 您可以在这里查看$metadata 请提供帮助。当我们生成导航属性时,我们不会重用这些关系

在两个实体之间有非常简单的关系,我试图用asp.net webapi odata控制器公开它们,但似乎$metadata有问题

在$metadata上运行jaydatasvcutil.exe时,我收到警告:inverseProperty other side missing

当我使用breezejs loadNavigationProperty时,我得到了类似的错误

即使是官方的例子,我也有这个问题。

您可以在这里查看$metadata


请提供帮助。

当我们生成导航属性时,我们不会重用这些关系

例如,假设您有一个简单的模型

public class Product
{
    public int Id { get; set; }
    public Supplier Supplier { get; set; }
}
public class Supplier
{
    public int Id { get; set; }
    public Product[] Products { get; set; }
}
我们生成的导航属性的$metadata如下所示

<NavigationProperty Name="Supplier" Relationship="ProductsService.Models.ProductsService_Models_Product_Supplier_ProductsService_Models_Supplier_SupplierPartner" ToRole="Supplier" FromRole="SupplierPartner" />

<NavigationProperty Name="Products" Relationship="ProductsService.Models.ProductsService_Models_Supplier_Products_ProductsService_Models_Product_ProductsPartner" ToRole="Products" FromRole="ProductsPartner" />
<NavigationProperty Name="Category" Type="Self.Category" Nullable="false" Partner="Products" />
不难看出,制造商、原材料和产品。消费者应与制造商、产品和产品。生产者具有相同的关系。我们选择不这样做是因为我们知道的客户并没有充分利用这些信息

所有这些都是因为OData使用与entityframework相同的EDM模型。Entityframework需要这些信息,因为它将这些关系映射到将成为数据库中表的关联集

我们选择不这样做的另一个原因是,这可能会在ODataV4中消失。查看工作草案(第23页和第57页可能会有兴趣)。简而言之,OData V4中$metadata中的导航属性看起来更像这样

<NavigationProperty Name="Supplier" Relationship="ProductsService.Models.ProductsService_Models_Product_Supplier_ProductsService_Models_Supplier_SupplierPartner" ToRole="Supplier" FromRole="SupplierPartner" />

<NavigationProperty Name="Products" Relationship="ProductsService.Models.ProductsService_Models_Supplier_Products_ProductsService_Models_Product_ProductsPartner" ToRole="Products" FromRole="ProductsPartner" />
<NavigationProperty Name="Category" Type="Self.Category" Nullable="false" Partner="Products" />


请注意,没有关系,也不会有关联集。

TL;医生:这只是一个警告。你可以忽略它:)另外,我们曾经有一个bug跟踪这个-好的。谢谢你的解释。我只需要配置前面提到的js框架。