我正在尝试删除许多表中具有唯一索引的记录。因此,如果将组件添加到列表中,则必须将订单增加1或者将后端保存到数据库。
当我在列表中删除其中一个组件时,我的问题就出现了,我也在修改任何组件,并且订单高于它,以便按照这些组件的顺序没有间隙。
多对多表中填充了5个具有唯一索引的组件,而componentId是唯一的。组件entityAspect设置为已删除(尚未保存)
我删除第三个组件,因此组件4& 5将使索引减少1,以便新索引将是1234而不是1245.这是由JS完成的,一旦完成,我就调用我的服务,保存所有更改。
我还试图覆盖saveMap。
protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap)
{
saveMap[typeof(ManyToManyBdo)] = saveMap[typeof(ManyToManyBdo)].OrderBy(info => info.EntityState).ToList();
return base.BeforeSaveEntities(saveMap);
}
这似乎并没有改变breeze执行的方式。