没有反向属性的子实体没有填充

时间:2013-05-28 16:38:10

标签: breeze

我的数据结构具有单向1> n导航(没有n-> 1)但遗憾的是API不受我的控制。问题是,当我从服务中获取数据时,子项不会添加到父项中(虽然我确实从服务器接收了建筑物,但建筑物集合仍然是空的)。元数据是手动构建的。

我试图追查问题,我发现它可能是第12635行:

if (!inverseProperty) return;

如果没有反向属性,则不会将找到的相关实体推送到可观察数组中。这很奇怪,因为breeze文档明确指出:

  

省略导航属性

     

有时你想省略一个导航属性   协会。例如,您可能有Person.Gender,但您没有   想要Gender.Persons;没有充分的理由去导航   “男性”性别实体对所有男性人员都没有理由招致   更新该导航的可观察数组的开销。   幸运的是,您可以在原则上省略导航属性   协会的一面。性别是此示例中的主要内容   所以你可以省略Gender.Persons。

以下是定义:

function addBuildingType(store) {
        store.addEntityType({
            shortName: 'Building',
            namespace: 'Helios',
            autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
            dataProperties: {
                id: { dataType: DataType.Int32, isNullable: false, isPartOfKey: true },
                address: { dataType: DataType.String },
                city: { dataType: DataType.String },
                client: { dataType: DataType.String },
                contractNo: { dataType: DataType.Int32 },
                includedDevices: { dataType: DataType.Int32 },
                phoneNo: { dataType: DataType.String },
                totalDevices: { dataType: DataType.Int32 },
                zipCode: { dataType: DataType.String }
            }
        });
    } 

    function addScheduledEventType(store) {
        store.addEntityType({
            shortName: 'ScheduledEvent',
            namespace: 'Helios',
            autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
            dataProperties: {
                id: { dataType: DataType.Int32, isNullable: false, isPartOfKey: true },
                startTime: { dataType: DataType.DateTime, isNullable: false },
                duration: { dataType: DataType.DateTimeOffset, isNullable: false }
            },
            navigationProperties: {
                buildings: { entityTypeName: "Building:#Helios", isScalar: false, associationName: "ScheduledEvent_Buildings" }
            }
        });

        store.registerEntityTypeCtor(
            'ScheduledEvent', null, scheduledEventInitializer);
    }

关于如何在不添加逆属性的情况下解决此问题的任何想法?否则一切都应该有效,因为Edmunds样本完全按照我的方式进行,不同之处在于它具有反向属性。

1 个答案:

答案 0 :(得分:2)

编辑截至v Breeze 1.3.5,现已上市(2013年6月4日),此问题已修复。


这是已知的错误,我们会尽快修复它...

我们还有一些其他的东西要先出去(NHibernate和Mongo的样本),但现在这是一个最重要的错误。

注意,此错误仅发生在单向1 - >; ñ。 Breeze对单向n - >没有问题。 1(在大多数模型中更常见)。