我在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);
}
答案 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?