我正在制作一个遵循 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 }},