Функция Linq SubmitChanges () - когда звонить?

Как часто при манипулировании данными с помощью Linq необходимо вызывать метод SubmitChanges ()?

В моем проекте есть несколько таблиц, связанных с внешними ключами. В SQL-запросе создания эти внешние ключи ограничены, поэтому запись, которая является частью отношения, не может быть удалена без предварительного удаления зависимых записей.

Следовательно, существует определенный порядок удаления записей в отношении. Придется ли мне удалять каждую запись и каждый раз выполнять функцию SubmitChanges () в базе данных, или я могу выполнить все удаления за один раз?

РЕДАКТИРОВАТЬ. Мой главный вопрос: удаляются ли записи в SubmitChanges () в том же порядке, в каком вы удаляете их в коде?


person Greg    schedule 01.09.2010    source источник


Ответы (2)


Вы должны попытаться называть его как можно реже, но с Linq2SQL существует известная проблема, когда у вас есть вставки и удаления, которые эффективно заменяют объект. В таких случаях лучше вызвать его как можно скорее после удаления и последующей вставки.

Вот аналогичный вопрос, который я задал пока вернулся.

person leppie    schedule 01.09.2010
comment
Итак, было бы нормально удалить все связанные записи за один раз, и порядок их удаления в SubmitChanges () совпадает с порядком, который я установил в программе? - person Greg; 01.09.2010
comment
@Greg: Нет, порядок определяется DataContext. Обычно Insert - ›Update -› Delete (я уверен, вы видите проблему). - person leppie; 01.09.2010

Если вам нужно удалить как пакет, например за одну транзакцию, вы должны вызывать метод SubmitChanges только один раз, когда вы отметили все объекты для удаления.

person James Culshaw    schedule 01.09.2010