0
私はデータベースから削除したいオブジェクトのリストを持っています。使用するよりも、それを行うには良い方法はあります:エンティティオブジェクトのリストをクリアします(C#とエンティティフレームワーク4)
foreach (Entity e in entities)
{
context.Entities.remove(e);
}
は、どうやらこれは本当に時間がかかりDB、各時点で削除クエリを行います。
最後に私は別の方法でやることにしましたが、よりよい解決策が必要であると確信しています。
List<int> cycles = scenario.Cycles.Select(x=>x.cycle_id).ToList();
List<int> activitiesForScenario = context.Activities.Where(
a=> cycles.Contains(a.Cycle.cycle_id)).Select(a=>a.activity_id).ToList();
List<WTA> wtas=
context.WTAs.Where(wta => activitiesForScenario.Contains(wta.activity_id_fk)).ToList();
foreach (Week_TSE_activities wta in weekTSEactivities)
{
context.Week_TSE_activities.Remove(wta);
}
そしてこれは、それが今ある方法です(より良い、私はそれが良い解決策だとは思わない): これは私がやりたい(すべてのWTAを取得し、その後、それらを削除するには)何です。
foreach (Cycle cycle in scenario.Cycles)
{
foreach (Activity activity in cycle.Activities)
{
activity.WTAs.Clear();
}
}
Tnksが助けてくれます。
すべての結果をフェッチして1つずつ削除しても、それはありません。しかし、解決策は、データベースへの別の接続を作成し、提案したDELETE FROMカタログ問合せを実行することでした。私はこれを前に見たことがあります:) – Tiago