实体框架删除性能

时间:2010-02-04 19:47:37

标签: c# performance entity-framework

我有一个大约1000行的Concept表,我想在Attribute表中清除它的所有后代行(每个概念应该只有一个属性行)。在下面调用保存更改大约需要2分钟,我可以对下面的代码进行任何优化,还是需要编写存储的prodcedure。

 public static void RemoveConcepts()
 {
  using (var ve = new DataModel())
  {
   foreach (var concept in ve.Concepts)
   {
    if (concept.Thesaurus != null)
    {
     concept.Thesaurus.Concepts.Remove(concept);
    }
    concept.Thesaurus = null;
    concept.Attributes.Load();
    concept.Attributes.Clear();
    ve.DeleteObject(concept);
   }
   ve.SaveChanges();
  }
 }

Data Model http://img504.imageshack.us/img504/9604/datamodel.png

1 个答案:

答案 0 :(得分:2)

如果属性上有级联then you won't need to load/clear them。这可能是您遇到的大多数性能问题的原因。