Как мне сделать обновление и удаление объекта в течение одного вызова SubmitChanges () - PullRequest
0 голосов
/ 09 ноября 2010
var dc = new DataContext();
var myItem = dc.Items.Single(x => x.Id == 12);

myItem.LastModifiedBy = "me";
myItem.LastModifiedDateTime = DateTime.Now;
// dc.SubmitChanges(); I don't want to do this!

dc.DeleteOnSubmit(myItem);
dc.SubmitChanges(); // does not perform the update

Я внес изменение в myItem и хочу, чтобы это изменение было внесено в базу данных для целей аудита.Я не хочу вызывать SubmitChanges () дважды.Я хочу, чтобы это произошло в одном вызове SubmitChanges (), чтобы воспользоваться неявной транзакцией.Как я могу сказать DataContext для обновления и удаления?Код только удаляет.Я знаю, что обновление не вызывается, потому что триггер обновления таблицы базы данных не срабатывает.DataContext, вероятно, считает, что, поскольку он помечен для удаления, нет смысла беспокоиться об обновлении.

Есть предложения?В идеале это означало бы, что нет необходимости использовать хранимую процедуру.Кроме того, я не могу по различным причинам использовать TransactionScope.

1 Ответ

0 голосов
/ 14 ноября 2010

Похоже, что лучшим решением этой проблемы было бы изменить триггер DELETE, чтобы вставить правильный DateTime, и вообще пропустить дополнительное ненужное обновление.

...