0

John Papa の Code Camper SPA Jumpstart Pluralsight コースに沿った Web サイトを作成しています。私のデータベース/エンティティには、次の階層があります。

  • 習熟度には、アクションとレベルが含まれます。

「熟練度」を削除すると、次のサーバー側エラーが発生します:「オブジェクト参照がオブジェクトのインスタンスに設定されていません。」

BreezeController の json JObject saveBundle を見ると、謎のメッセージが表示されます。

「未定義」: 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());
    }
};

私の直感によると、不思議な "undefined":false は "isPartial" プロパティです。ドキュメントによると、「Breeze は isPartial プロパティをマッピングされていないプロパティとしてエンティティ メタデータに追加します。マッピングされていないプロパティの値はサービスに送信されません。」ハマった。これを理解するために私ができることを誰かが勧めますか?

ありがとう、ダン

これは savebundle のサンプルです

{ "entities": [ { "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": "Proficiency:#LobGame.Model", "entityState": "削除済み", "originalValuesMap": { "IsPartial": true }, "autoGeneratedKey": null } },

4

1 に答える 1

3

これはおそらく、breeze 1.2.8 で現在行われているバグ修正によるものです。これで修正されました。

リリースノートから:

マップされていないプロパティへの変更も保存に含まれている場合に、削除を含む保存が失敗する場合のバグ修正。

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

于 2013-04-13T17:42:37.693 に答える