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。
答案 0 :(得分:0)
似乎这个问题的最佳解决方案是更改DELETE触发器以插入正确的DateTime
,并跳过完全不必要的更新。