1

Unique インデックスを持つ多対多テーブルのレコードを削除しようとしています。したがって、コンポーネントがリストに追加されている場合、順序を 1 つ増やす必要があります。そうしないと、バックエンドで DB への保存が許可されません。

リスト内のこれらのコンポーネントの1つを削除すると、これらのコンポーネントの順序にギャップがないように、それよりも高い順序でコンポーネントを変更するときに問題が発生します。

シナリオ:

多対多テーブルには、一意のインデックスと componentId の一意の 5 つのコンポーネントが取り込まれます。コンポーネント entityAspect は削除済みに設定されています (保存はまだ行われていません)

3 番目のコンポーネントを削除すると、コンポーネント 4 と 5 のインデックスがそれぞれ 1 ずつ減るため、新しいインデックスは 1245 ではなく 1234 になります。 .

また、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);
    }

ただし、これはそよ風の実行方法を変更するようには見えません。

4

0 に答える 0