0
我已经列出了要从数据库中删除的对象。有没有更好的办法做到这一点比使用:清除实体对象列表(C#和实体框架4)
foreach (Entity e in entities)
{
context.Entities.remove(e);
}
显然,这将每次的DB,这是非常耗费时间在做删除查询。
最后我决定以其他方式做,但我确定必须有更好的解决方案。 这就是我想做的事(让所有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();
}
}
有很多帮助。
它不会,如果获取所有结果并逐个删除它们。但解决方案是创建与数据库的另一个连接并执行您建议的DELETE FROM目录查询。我希望我以前见过这个:) – Tiago 2012-08-08 18:36:54