Performance 对于大量行,Linq2Sql InsertAllOnSubmit与Multiple InsertOnSubmit

Performance 对于大量行,Linq2Sql InsertAllOnSubmit与Multiple InsertOnSubmit,performance,linq-to-sql,Performance,Linq To Sql,例如,如果我有100000行要插入/更新/删除,那么这个数字将不断增长。以下哪项是最好的方法,或者没有任何区别 PeopleRepository AddPeople实现 public void AddPeople(IEnumerable i) { _Database.people.InsertAllOnSubmit(i); } public void AddPerson(Person p) { _Database.people.InsertOnSubmit(p); } pub

例如,如果我有100000行要插入/更新/删除,那么这个数字将不断增长。以下哪项是最好的方法,或者没有任何区别

PeopleRepository AddPeople实现

public void AddPeople(IEnumerable i)
{
    _Database.people.InsertAllOnSubmit(i);
}
public void AddPerson(Person p)
{
    _Database.people.InsertOnSubmit(p);
}
public void Save()
{
    _Database.SubmitChanges();
}
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();
PeopleRepository repo = new PeopleRepository();

foreach (var p in myObject.GetPeople())
{
    Person person = new Person
    {
        person.Name = p.Name
    };

    repo.AddPerson(person);
    repo.Save();
}
PeopleRepository AddPerson实现

public void AddPeople(IEnumerable i)
{
    _Database.people.InsertAllOnSubmit(i);
}
public void AddPerson(Person p)
{
    _Database.people.InsertOnSubmit(p);
}
public void Save()
{
    _Database.SubmitChanges();
}
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();
PeopleRepository repo = new PeopleRepository();

foreach (var p in myObject.GetPeople())
{
    Person person = new Person
    {
        person.Name = p.Name
    };

    repo.AddPerson(person);
    repo.Save();
}
PeopleRepository保存实现

public void AddPeople(IEnumerable i)
{
    _Database.people.InsertAllOnSubmit(i);
}
public void AddPerson(Person p)
{
    _Database.people.InsertOnSubmit(p);
}
public void Save()
{
    _Database.SubmitChanges();
}
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();
PeopleRepository repo = new PeopleRepository();

foreach (var p in myObject.GetPeople())
{
    Person person = new Person
    {
        person.Name = p.Name
    };

    repo.AddPerson(person);
    repo.Save();
}
InsertAllOnSubmit实现

public void AddPeople(IEnumerable i)
{
    _Database.people.InsertAllOnSubmit(i);
}
public void AddPerson(Person p)
{
    _Database.people.InsertOnSubmit(p);
}
public void Save()
{
    _Database.SubmitChanges();
}
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();
PeopleRepository repo = new PeopleRepository();

foreach (var p in myObject.GetPeople())
{
    Person person = new Person
    {
        person.Name = p.Name
    };

    repo.AddPerson(person);
    repo.Save();
}

如果你有这么多的变化,你可以考虑在一个SQL更新或INSERT语句中表达变化。< /P> + 1,因为如果你用LINQ to SQL来执行它,它将对你所做的每一个插入执行一个单独的查询,不管你写的代码要比一些普通的SQL语句要长。