我正在尝试删除具有唯一索引的多对多表中的记录。因此,如果将组件添加到列表中,则订单必须增加一,否则后端将不允许将其保存到数据库中。
当我删除列表中的这些组件之一时,我的问题就出现了,我还修改了任何组件,并且 Order 高于它,以使这些组件的顺序没有间隙。
设想:
多对多表填充了 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);
}
不过,这似乎并没有改变微风的执行方式。