Performance 对于大量行,Linq2Sql InsertAllOnSubmit与Multiple InsertOnSubmit
例如,如果我有100000行要插入/更新/删除,那么这个数字将不断增长。以下哪项是最好的方法,或者没有任何区别 PeopleRepository AddPeople实现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
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语句要长。