breeze:带有navigationProperty的客户端模型给出了错误

时间:2014-11-25 13:09:27

标签: breeze

ResourceUnavailabilities调用addEntityType时,出现错误:error configuring an instance of 'NavigationProperty'. The 'entityTypeName' parameter must be a 'string'

我不明白。我查看了微风网站上的tutorial,我无法分辨出我做错了什么。

客户端模型:

       metadataStore.addEntityType({
            shortName: 'Unavailability',
            namespace: 'ecdt',
            dataProperties: {
                id: { dataType: DT.Guid, isPartOfKey: true },
                startDate: { dataType: DT.DateTimeOffset },
                endDate: { dataType: DT.DateTimeOffset },
                isDayOff: { dataType: DT.Boolean }
            }
        });

        metadataStore.registerEntityTypeCtor('Unavailability', null, null);

        metadataStore.addEntityType({
            shortName: 'ResourceUnavailabilities',
            namespace: 'ecdt',
            dataProperties: {
                id: { dataType: DT.Guid, isPartOfKey: true },
                resourceId: { dataType: DT.Int32 },
            },
            navigationProperties: {
                unavailabilities: { dataType: 'Unavailability', hasMany: true }
            }
        });

        metadataStore.registerEntityTypeCtor('ResourceUnavailabilities', null, null);

除了everthing工作正常。我可以创建Unavailability个实体以及ResourceUnavailabilities个实体(只要删除导航属性...)

此外,在本教程中,您使用name属性而不是shortname。如果我这样做,我会收到错误 Error configuring an instance of 'EntityType'. Unknown property: 'name'。样品是否已过期?

1 个答案:

答案 0 :(得分:2)

好的,它已经解决了。正确的映射是:

  metadataStore.addEntityType({
            shortName: 'Unavailability',
            namespace: 'ecdt',
            dataProperties: {
                id: { dataType: DT.Guid, isPartOfKey: true },
                startDate: { dataType: DT.DateTimeOffset },
                endDate: { dataType: DT.DateTimeOffset },
                isDayOff: { dataType: DT.Boolean }
            },

            navigationProperties: {
                unavailabilities: { entityTypeName: 'ResourceUnavailabilities', isScalar: true, associationName: "test" }
            }
        });

        metadataStore.registerEntityTypeCtor('Unavailability', null, null);

        metadataStore.addEntityType({
            shortName: 'ResourceUnavailabilities',
            namespace: 'ecdt',
            dataProperties: {
                id: { dataType: DT.Guid, isPartOfKey: true },
                resourceId: { dataType: DT.Int32 },
            },
            navigationProperties: {
                unavailabilities: { entityTypeName: 'Unavailability', isScalar: false, associationName: "test" }
            }
        });

看起来breeze文档并不完全是最新的。