Linq2Sql InsertAllOnSubmit против нескольких InsertOnSubmit для большого количества строк - PullRequest
1 голос
/ 25 февраля 2010

Если я скажу, например, 100 000 строк для вставки / обновления / удаления, и это число будет постоянно расти. Что из следующего является лучшим подходом или не имеет значения.

Реализация AddPeople PeopleRepository

public void AddPeople(IEnumerable i)
{
    _Database.people.InsertAllOnSubmit(i);
}

Реализация AddPerson PeopleRepository

public void AddPerson(Person p)
{
    _Database.people.InsertOnSubmit(p);
}

Репозитарий людей Сохранить реализацию

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 Ответ

2 голосов
/ 25 февраля 2010

Если у вас такое большое количество изменений, вы можете подумать о том, чтобы выразить это изменение в одном операторе SQL UPDATE или INSERT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...