breeze:将item添加到complex-type数组中

时间:2013-12-05 09:28:06

标签: javascript arrays breeze durandal

我在durandal-project中有一个微风课程。 类(称为“employee”)包含complex类型的属性(名为“mainData”)。 “main-data”包括名为“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);
    }

MainData:

    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);
    }

1 个答案:

答案 0 :(得分:1)

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

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

检查此答案以获取有关如何附加复杂类型的更多详细信息 - What's the correct way to create an unbound instance of a complex type in breeze?