【发布时间】:2014-05-19 10:52:38
【问题描述】:
我在 Durandal-project 工作并使用 Breeze-Entities。
在 Breeze 中,您可以赋予实体类型、复杂类型的属性。
我在服务器微风实体中做到了,但不知道如何在客户端实体中做到这一点。
这是我在服务器实体中的代码:
function addEmployeeType(store) {
store.addEntityType({
shortName: "EmployeeDTO",
namespace: "myServer.Entities",
autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
dataProperties: {
Emp_no: { dataType: DataType.Int32, isNullable: false, isPartOfKey: true },
employeeBaseData: {
name: "employeeBaseData",
complexTypeName: "EmployeeBaseDTO:#myServer.Entities",
isNullable: false,
isPartOfKey: false
}
});
store.registerEntityTypeCtor("EmployeeDTO", null, employeeInit);
}
function addEmployeeBaseDataType(store) {
store.addEntityType({
shortName: "EmployeeBaseDTO",
namespace: "myServer.Entities",
isComplexType: true,
dataProperties: {
name: { dataType: DataType.String, isNullable: true, isPartOfKey: false, validators: [Validator.required(),validationHelper.numeric()] }
}
});
store.registerEntityTypeCtor("EmployeeBaseDTO", null, null);
}
这是我的代码不起作用-客户端代码:
function addReportType() {
store.addEntityType({
shortName: 'Report',
autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
dataProperties: {
key:{ dataType: DataType.Int32, isNullable: false, isPartOfKey: true },
dateArea: {
name: "dateArea",
complexTypeName: "dateArea",
isNullable: false,
isPartOfKey: false
}
}
});
store.registerEntityTypeCtor('Report', null, ReportInit);
}
function addReportDateAreaType() {
store.addEntityType({
shortName: "dateArea",
isComplexType: true,
dataProperties: {
fromDate: { dataType: DataType.Date, isNullable: true, isPartOfKey: false },
toDate: { dataType: DataType.Date, isNullable: true, isPartOfKey: false }
}
});
store.registerEntityTypeCtor('dateArea', null, dateAreaInit);
}
我知道我的代码不正确。
当我尝试创建 ReportType 的实例时,我接受:“无法获取未定义或空引用的属性 '_createInstanceCore'”。
那么为客户端微风实体创建复杂类型属性的正确方法是什么?
【问题讨论】:
标签: javascript breeze