gpt4 book ai didi

javascript - Breeze js : adding referential constraint to an entity type

转载 作者:行者123 更新时间:2023-12-02 18:23:19 27 4
gpt4 key购买 nike

这是 my previous issue 的后续问题- 这个有点困惑,与 Telerik 数据服务更相关。

我从服务器收到的元数据缺少关联节点中的引用约束,尽管我已在模型上设置了外键属性

因此,我正在考虑在 FetchMetadata 的回调中手动将这些约束添加到我的实体中。

这可能吗?有人可以提供一个简单的例子来说明如何做到这一点吗?

[编辑]

这是我到目前为止所拥有的:

  manager.fetchMetadata().then(function () {
var mandatType = manager.metadataStore.getEntityType("Mandate");
mandatType.autogeneratedKeyType = breeze.AutoGeneratedKeyType.Identity;

var openPositionsProp = new breeze.NavigationProperty({
name: "OpenPositions",
entityTypeName: "OpenPositions:#DirectDebitModel",
isScalar: true,
associationName: "OpenPosition_Mandate_Mandate_OpenPositions",
foreignKeyNames: ["Id"]
});

mandatType.addProperty(openPositionsProp);
});

但它引发了异常:

“Mandate:#DirectDebitModel”EntityType 已添加到 MetadataStore,因此不能向其中添加其他属性。

最佳答案

好的,我有一个可能的方法您现在就可以使用。

  1. 像现在一样从 Teleriks OData feed 中获取元数据。

  2. 通过MetadataStore.exportMetadata方法导出上一步创建的metadataStore。这将以 Breeze 的 native 格式返回相同元数据的“字符串化”json。这种格式更容易使用。

  3. 通过 JSON.parse 将此字符串转换为 json。

  4. 修改json以添加引用约束信息。请参阅Breeze Native Metadata format docs here

  5. 创建一个新的MetadataStore并将修改后的json导入其中。

  6. 使用此 MetadataStore 创建一个新的 EntityManager 并使用它。此 EntityManager 现在应该具有完整的 Breeze 元数据,以便与 feed 的其余部分一起使用。

    希望这是有道理的!

    我们计划在下一个版本中发布一种形式的混合元数据。不幸的是,它不涵盖您的情况,因为我们专注于如何将自定义元数据添加到现有元数据存储,而不是实际编辑/修改现有元数据。

    另一种选择是我们(IdeaBlade)为此类工作提供咨询服务。我们或许可以编写一个工具来为您执行步骤 1 到 6。如果您对此感兴趣并提及这篇文章,请联系 Breeze@ideablade.com。

关于javascript - Breeze js : adding referential constraint to an entity type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18617075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com