如何在一次调用SubmitChanges()中对实体进行更新和删除

时间:2010-11-09 00:48:30

标签: linq-to-sql datacontext

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 :(得分:0)

似乎这个问题的最佳解决方案是更改DELETE触发器以插入正确的DateTime,并跳过完全不必要的更新。