微风:将项目添加到复杂类型的数组中

breeze: add item to array of complex-type

本文关键字:类型 数组 复杂 项目 添加 微风      更新时间:2024-03-24

我在durandal项目中有一个微风课程。类(称为"employee")包括复杂类型的属性(名为"mainData")。"主数据"包括名为"childrenList"的复杂类型的数组。名为"childDTO"的数组元素的复杂类型。我接受来自服务器(c#)的数据,并在客户端(javascript)中向数组添加和删除项。之后,我想将更改后的数组发送到服务器,以便保存。

我的问题是:如何向微风阵列添加项目

这是我的类定义:

员工:

         addEmployeeType(store);
    function addEmployeeType(store) {
        store.addEntityType({
            shortName: "EmployeeDTO",
            namespace: "myServer.Entities",
            autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
            dataProperties: {
                Emp_no1: { dataType: DataType.Int32, isNullable: false, isPartOfKey: true },
                employeeBaseData: {
                    name: "employeeBaseData",
                    complexTypeName: "EmployeeBaseDTO:#myServer.Entities",
                    isNullable: false,
                    isPartOfKey: false
                },
                employeeMainData: {
                    name: "employeePersonalDetails",
                    complexTypeName: "EmployeePersonalDetailsDTO:#myServer.Entities",
                    isNullable: true
                }
        });
        store.registerEntityTypeCtor("EmployeeDTO", null, employeeInit);
    }

主数据:

    addEmployeeMainDataType(store);
    function addEmployeeMainDataType(store) {
        store.addEntityType({
            shortName: "EmployeeMainDataDTO",
            namespace: "myServer.Entities",
            isComplexType: true,
            dataProperties: {
                PermGroup: { dataType: DataType.Int32, isNullable: true, isPartOfKey: false },                   
                Expire_Date: { dataType: DataType.DateTime, isNullable: true, isPartOfKey: false },                  
                ChildrenList: { dataType: DataType.childDTO, isPartOfKey: false, isScalar: false }
            }
        });
        store.registerEntityTypeCtor("EmployeeMainDataDTO", null, null);
    }

      addEmployeeChildType(store);
    function addEmployeeChildType(store) {
        store.addEntityType({
            shortName: "ChildDTO",
            namespace: "myServer.Entities",
            isComplexType: true,
            dataProperties: {
                name: { dataType: DataType.String, isNullable: true, isPartOfKey: false },            
                age: { dataType: DataType.Int32, isPartOfKey: false }
            }
        });
        store.registerEntityTypeCtor("ChildDTO", null, null);
    }

复杂类型与导航属性的不同之处在于,不能指定两个实体之间的映射。导航属性具有从每个实体到另一个实体的引用,但不能对complexTypes执行此操作,因为它们是父实体的属性,不能分配给其他实体或任何其他实体。

查看文档了解更多信息-http://www.breezejs.com/documentation/complextype-properties

有关如何附加复杂类型的更多详细信息,请查看此答案-什么';在微风中创建复杂类型的未绑定实例的正确方法是什么?