我的问题是:
在 Breeze.js 中,是否可以在保存该实体之前更改/设置服务器上实体的属性值?
例如,假设有一个名为Product的实体并且该实体有一个名为Price的属性,我希望在服务器中并在保存实体之前,将Price值乘以一个常数。
看看这里和这里,我尝试使用以下方法:BeforeSaveEntity(entityInfo)
, BeforeSaveEntities(saveMap)
, SaveChangesCore(saveMap)
。
在源代码中,我理解BeforeSaveEntity(entityInfo)
并BeforeSaveEntities(saveMap)
仅用于验证实体。这不是我要找的。
在此处SaveChangesCore(saveMap)
描述的带有源代码的方法中,我认为这里是更改实体属性值的地方。
所以我尝试了以下方法,但没有奏效。数据库中的值未更新
protected override List<KeyMapping> SaveChangesCore(Dictionary<Type, List<EntityInfo>> saveMap)
{
foreach (var entity in saveMap[typeof(Product)])
{
var product = (Product)entity.Entity;
product.Price = product.Price * 10; // changing the value of the property
}
return base.SaveChangesCore(saveMap);
}
提前致谢,
贝尔纳多·帕切科