Вам нужно будет отслеживать изменения на стороне клиента, возможно, используя некоторые скрытые поля и / или поля формы в вашей сетке. Когда строка удалена (ранее существовавшая в БД), вам нужно добавить ее идентификатор в поле, содержащее строки для удаления. Добавляемые строки должны иметь связанные поля формы, содержащие их данные. Когда мастер зафиксирован, вы сверните весь набор полей в POST и отправите их обратно на сервер.
Используя LINQ to SQL, вы создадите контекст данных, получите главный объект, затем удалите связанные объекты (из скрытого поля идентификаторов), которые помечены таким образом, и создадите / добавите новые связанные объекты, которые не существуют перед получением значений из соответствующих полей формы. Тогда вы сделаете SubmitChanges
, и все операторы будут выполнены в рамках одной транзакции.