1
如果我说例如100,000行插入/更新/删除,这个数字将不断增长。以下哪一种是最好的方法,或者它没有任何区别。Linq2Sql InsertAllOnSubmit Vs多个InsertOnSubmit对于大量的行
的PeopleRepository AddPeople实施
public void AddPeople(IEnumerable i)
{
_Database.people.InsertAllOnSubmit(i);
}
的PeopleRepository addPerson的实施
public void AddPerson(Person p)
{
_Database.people.InsertOnSubmit(p);
}
的PeopleRepository保存实施
public void Save()
{
_Database.SubmitChanges();
}
InsertAllOnSubmit实施
PeopleRepository repo = new PeopleRepository();
List<Person> everyone = new List<Person>();
foreach (var p in myObject.GetPeople())
{
Person person = new Person
{
person.Name = p.Name
};
everyone.Add(person);
}
repo.AddPeople(everyone);
repo.Save();
InsertOnSubmit实施
PeopleRepository repo = new PeopleRepository();
foreach (var p in myObject.GetPeople())
{
Person person = new Person
{
person.Name = p.Name
};
repo.AddPerson(person);
repo.Save();
}
+1因为如果你用LINQ to SQL来做这件事,它会为你做的每一个插入操作执行一个单独的查询,无论你如何编写代码将花费比执行一些普通SQL语句更长的时间。 – 2010-02-25 10:13:35