我正在建立一个遵循John Papa的Code Camper SPA Jumpstart Pluralsight课程的网站。我的数据库/实体具有以下层次结构:
当我删除“熟练程度”时,我收到以下服务器方面的错误: “对象引用未设置为对象的实例。”
看着BreezeController中的json JObject saveBundle,我看到了一个神秘的东西:
“undefined”:false,
在每个实体中。我的实体都没有布尔值。就像在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());
}
};
我的直觉说神秘的“未定义”:false是“isPartial”属性。根据{{3}},“Breeze将isPartial属性作为未映射的属性添加到实体元数据。未映射属性的值不传输到服务。”我被卡住了。有人建议我可以做些什么来解决这个问题吗?
谢谢, 丹
以下是savebundle
的示例{“实体”: [ {“Id”:“a0223d7c-35e5-458f-ba83-65ec7ec189fa”,“Name”:“AST Prof0”,“IsEnabled”:true,“Description”:“AST Prof0”,“ProficiencyType”:“TBD”,“ ApplicationId“:”7ba4b47f-06a3-4ceb-bca6-de3fd3699bbd“,”undefined“:false,”entityAspect“:{”entityTypeName“:”熟练程度:#LobGame.Model“,”entityState“:”已删除“,”originalValuesMap“ :{“IsPartial”:true},“autoGeneratedKey”:null}},
答案 0 :(得分:3)
这可能是由于现在在微风1.2.8中的错误修复。这为我修好了。
从他们的发行说明:
错误修复了涉及删除的保存失败的情况 保存还涉及对未映射属性的修改。