asp.net-web-api – 在asp.net webapi odata $metadata中缺少反
在两个实体之间有非常简单的关系,我试图用asp.net webapi odata控制器公开它们,但似乎$元数据有问题.
当我在$元数据上运行jaydatasvcutil.exe时,我收到警告:inverseProperty其他方面缺失. 当我使用breezejs loadNavigationProperty时,我得到类似的错误. 即使有官方的例子我也有问题. 你可以在这里观察$元数据http://sdrv.ms/Z5Klfw 请帮忙. 解决方法
当我们生成导航属性时,我们不重用这些关系.
例如,假设你有简单的模型, 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; } } 我们生成的导航属性的$元数据如下所示, <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" /> 请注意,我们正在生成两个关系,而不是一个.我们这样做的原因是,弄清楚两个导航属性是否代表相同的关系是一个难题.以产品和制造商为例. public class Manufacturer { public int Id { get; set; } public Product[] RawMaterials { get; set; } public Product[] Produces { get; set; } } public class Product { public int Id { get; set; } public Manufacturer[] Producers { get; set; } public Manufacturer[] Consumers { get; set; } } 要弄清楚Maufacturer.RawMaterials和Product.Consumers应该共享相同的关系并且Manufaturer.Produces和Product.Producers应该共享相同的关系并非易事.我们选择不这样做是因为我们所知道的客户并没有从这些信息中获取太多信息. 所有这一切都发生,因为OData使用与实体框架相同的EDM模型. Entityframework需要此信息,因为它将这些关系映射到将成为数据库中的表的关联集. 我们选择不这样做的另一个原因是这可能会在OData V4中消失.查看工作草案here(第23页和第57页将有意义).简而言之,OData V4中$metadata中的导航属性看起来更像这样, <NavigationProperty Name="Category" Type="Self.Category" Nullable="false" Partner="Products" /> 请注意,没有关系,也没有关联集. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – WebMatrix路由如何工作?
- entity-framework – 未运行SetInitializer但EF仍在尝试Cre
- asp.net-mvc – 以任何方式配置配置visual studio mvc构建视
- asp.net-mvc-3 – Asp.Net MVC 3 – @ Html.Action不会呈现
- asp.net-mvc-3 – 全球化在ASP.Net MVC 3
- 为什么Asp.Net MVC 5在_Layout.cshtml的底部放置@ Scripts.
- asp.net – CustomValidator不工作
- asp.net-core – 加密ASP.Net Core中的连接字符串和其他配置
- asp.net-mvc-3 – ASP.NET MVC 3中ViewBag.Title的替代方法
- X-Admin&ABP框架开发-设置管理
- asp.net – 如何使用Ajax.BeginForm OnSuccess和
- 什么用于ASP.NET的成员资格
- asp.net-mvc – Asp.NET MVC 2预览2:Area的aspx
- asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数
- asp.net-mvc – 如何在MVC控制器中使用消息框?
- asp.net – visual studio调试错误无法启动程序没
- asp.net – 使用Spark视图引擎在局部视图中使用不
- asp.net – .Net Core 2 Spa模板与角度材料
- 如果ASP.NET应用程序使用许多DLL,那么保持每个dl
- asp.net-mvc – 堆栈跟踪错误