Breeze createEntity-为complexType提供初始值
我在durandal项目中工作,使用breeze实体 在我的项目中,我需要创建客户机实体,并在创建时给出initialValue 通常,无论您想给新实体赋予什么初始值,都要将其传递给createEntity函数 例如:Breeze createEntity-为complexType提供初始值,breeze,Breeze,我在durandal项目中工作,使用breeze实体 在我的项目中,我需要创建客户机实体,并在创建时给出initialValue 通常,无论您想给新实体赋予什么初始值,都要将其传递给createEntity函数 例如: dataContext.createEntity('employee', {age:40, city:'OurCity'}); 因此,您将获得带有年龄和城市默认数据的employee的新空实例。 我想用包含complexFields的实体类型来实现这一点。 但它不起作用 我的实
dataContext.createEntity('employee', {age:40, city:'OurCity'});
因此,您将获得带有年龄和城市默认数据的employee的新空实例。
我想用包含complexFields的实体类型来实现这一点。
但它不起作用
我的实体是客户实体
代码如下:
addFormType(store);
function addFormType(store) {
store.addEntityType({
shortName: "FormDTO",
autoGeneratedKeyType: AutoGeneratedKeyType.Identity,
dataProperties: {
key: {//auto primary key. numeratorA and Code cannot be key, becose for new records thier aren't unique
dataType: DataType.Int32, isNullable: false, isPartOfKey: true
}
TaxYear: {
dataType: DataType.String, validators: [Validator.required({ message: 'דרוש' })]
},
Unit_A: {
name: "FormUnit_A",
complexTypeName: 'FormUnit_A:#'
}
}
});
store.registerEntityTypeCtor("FormDTO", null, FormInit);
}
function FormInit(entity) {
validationHelper.initializer(entity);
}
addFormUnit_AType(store);
function addFormUnit_AType(store) {
store.addEntityType({
shortName: "FormUnit_A",
isComplexType: true,
dataProperties: {
CompanyName: {
dataType: DataType.String
},
CompanyAddress: {
dataType: DataType.String
}
}
});
store.registerEntityTypeCtor("FormUnit_A", null, null);
}
我试着用以下几行来开头:
var defaultData = {
TaxYear:0,
Unit_A:{
CompanyName:'ourCompany',
CompanyAddress:'Zar 200 OurCity'
}
};
clientManager.createEntity('FormDTO', defaultData);
但它抛出异常:对象不支持属性或方法“getProperty”
我还尝试传递一个具有所有属性的单层对象:
var defaultData = {
TaxYear:0,
CompanyName:'ourCompany',
CompanyAddress:'Zar 200 OurCity'
};
clientManager.createEntity('FormDTO', defaultData);
但它抛出异常:对象不支持属性或方法“CompanyName”
那么,创建具有初始值的实体的正确方法是什么?实体包含复杂类型的实体是什么?根据项目中的工作情况,听起来您在使用类似camelCase的策略来命名客户端属性。如果不是这样,请原谅这个回答 如果是这样的话,那么为什么在创建复杂类型时不使用camelCased属性呢?看起来很简单-
var defaultData = {
taxYear:0,
unit_A:{
companyName:'ourCompany',
companyAddress:'Zar 200 OurCity'
}
};
clientManager.createEntity('FormDTO', defaultData);
但我知道!请看我的问题,你在哪里看到我没有使用camelCase?你试过我的答案了吗?我不明白为什么要使用PASCALCASE属性和其他camelCased属性。把它们都换成camelCase