我有一个大约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