【发布时间】:2012-02-01 16:01:35
【问题描述】:
我有一个要从数据库中删除的对象列表。有没有比使用更好的方法:
foreach (Entity e in entities)
{
context.Entities.remove(e);
}
显然这每次都会对数据库进行删除查询,这确实很耗时。
最后我决定用其他方式来做,但我确信一定有更好的解决方案。 这就是我想做的(获得所有 WTA,然后删除它们):
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);
}
这就是现在的情况(好多了,但我认为这不是一个好的解决方案)。
foreach (Cycle cycle in scenario.Cycles)
{
foreach (Activity activity in cycle.Activities)
{
activity.WTAs.Clear();
}
}
非常感谢您的帮助。
【问题讨论】:
标签: c# list frameworks entity