我已经使用registerEntityTypeCtor函数在创建实体时添加一些初始化代码。但是,无论实体的状态如何(添加vs已更改vs已分离等等)
,此代码都会被触发我希望registerEntityTypeCtor中的初始化代码仅应用于状态为Added的Entity。问题是实体的状态仅在调用定制构造函数之后设置。我可以做些什么来解决这个问题?
function configureMetadataStore(metadataStore) {
metadataStore.registerEntityTypeCtor('Mandate', function () {
this.blah = 'test';
}, mandatInitializer);
//Validator.register(someValidator);
logger.info('Validators applied');
}
function mandatInitializer(mandat) {
mandat.TransactionType = '0';
mandat.Status = '0';
mandat.NextSequenceType = '0';
mandat.MandateType = '0';
}
答案 0 :(得分:1)
方法registerEntityTypeCtor有三个输入参数:实体名称,构造函数和初始化方法。我认为您可以使用第三个参数仅在添加的实体中进行初始化。
dtContext.metadataStore.registerEntityTypeCtor(entityName, constructor, initializerMethod);
--- --- EDIT
您可以在initializerMethod:
中检查id是否为unefinedfunction initializerMethod(entity){
if(entity.id()===unefined || entity.id()=== null){
//Do things that you want with the new entity
//...
//Initilize the id with a temporal value that would be override in the server side.
}
}