0

我正在制作一个遵循 John Papa 的 Code Camper SPA Jumpstart Pluralsight 课程的网站。我的数据库/实体具有以下层次结构:

  • Proficiency 包含 Action(s) 和 Level(s)。

当我删除“熟练度”时,我收到以下服务器端错误:“对象引用未设置为对象的实例。”

查看BreezeController中的json JObject saveBundle,我看到了一个神秘的:

“未定义”:假,

在每个实体中。我的实体中都没有布尔值。就像在 Code Camper 中一样,我在每个实体的构造函数中添加了一个“isPartial”,如下面的代码所示。

        var proficiencyConstructor = function () {
        this.isPartial = false;
    }

        metadataStore.registerEntityTypeCtor('Proficiency', proficiencyConstructor, proficiencyInitializer);


    function proficiencyInitializer(proficiency) {
    var empty = "00000000-0000-0000-0000-000000000000";
    if (proficiency.id() === empty) {
        proficiency.id(breeze.core.getUuid());
    }
};

我的直觉说神秘的“未定义”:假是“isPartial”属性。根据文档,“Breeze 将 isPartial 属性作为未映射属性添加到实体元数据中。未映射属性的值不会传输到服务。” 我被困住了。有人推荐我可以做的事情来解决这个问题吗?

谢谢,丹

这是来自 savebundle 的示例

{“实体”:[{“Id”:“a0223d7c-35e5-458f-ba83-65ec7ec189fa”,“名称”:“AST Prof0”,“IsEnabled”:true,“描述”:“AST Prof0”,“ProficiencyType” :“待定”,“ApplicationId”:“7ba4b47f-06a3-4ceb-bca6-de3fd3699bbd”,“未定义”:false,“entityAspect”:{“entityTypeName”:“熟练度:#LobGame.Model”,“entityState”:“已删除”,“originalValuesMap”:{“IsPartial”:true},“autoGeneratedKey”:null }},

4

1 回答 1

3

这可能是由于现在微风 1.2.8 中的错误修复。这为我修好了。

从他们的发行说明中:

修复了当保存还涉及对未映射属性的修改时涉及删除的保存将失败的情况。

http://www.breezejs.com/documentation/download

于 2013-04-13T17:42:37.693 回答