Breeze createEntity-为complexType提供初始值

Breeze createEntity-为complexType提供初始值,breeze,Breeze,我在durandal项目中工作,使用breeze实体 在我的项目中,我需要创建客户机实体,并在创建时给出initialValue 通常,无论您想给新实体赋予什么初始值,都要将其传递给createEntity函数 例如: dataContext.createEntity('employee', {age:40, city:'OurCity'}); 因此,您将获得带有年龄和城市默认数据的employee的新空实例。 我想用包含complexFields的实体类型来实现这一点。 但它不起作用 我的实

我在durandal项目中工作,使用breeze实体

在我的项目中,我需要创建客户机实体,并在创建时给出initialValue

通常,无论您想给新实体赋予什么初始值,都要将其传递给createEntity函数

例如:

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