我目前正在使用 SAPUI5/OpenUI5 来使用和修改 OData 服务。
我想通过 HTTP POST 请求创建一个新产品条目,并且在正确配置与类别的关联时遇到问题。出于开发原因,我使用带有此元数据的参考OData 服务。Product 已经具有正确 Category EntrySet 的 NavigationProperty。
<NavigationProperty Name="Category" Relationship="ODataDemo.Product_Category_Category_Products" FromRole="Product_Category" ToRole="Category_Products"/>
我在控制器中使用以下 JavaScript 代码:
var oCategory = oModel.getData("/Categories(0)");
var oEntry = {};
oEntry.ID = "10";
oEntry.Name = "Beer";
oEntry.Category = oCategory;
oModel.create("/Products", oEntry, {
method: "POST",
success: function(data) {...},
error: function(response) {...}
});
产品已成功创建/Products(10)
,但与现有类别的关系/Products(10)/Category
无法正常工作。而是创建了一个具有相同 ID 和信息的新类别(这是否意味着“深度插入”?)但我想使用选定的类别(当然)。
我是否必须以不同的方式引用该类别,或者我可以以某种方式手动创建关联?OData 服务不应该检查类别 ID 是否已经存在,然后使用现有条目吗?
这种情况有什么最佳实践吗?