TransactionScope(TransactionScopeOption.Required, transOptions)) // Some logic and Linqqueries here}
我在事务作用域内执行了一些插入、更新、删除和proc调用,但我得到了一些负载很高的罕见的DeadLock异常。
因此,我正在尝试使用LINQ to SQL进行事务处理。我读到,如果我使用SubmitChanges(),它将创建一个事务并执行所有内容,如果发生异常,所有内容都将回滚。是否需要使用多个SubmitChanges()?我正在使用类似于此代码的代码,但它无法工作,因为它没有保存第一个表中的任何数据。(我需要它的ID作为子表)。如果我在第一个InsertOnSubmit之后立即使用另一个SubmitChanges(),它不会失去事务的概念
现在我的想法是为每个会话分配单独的LINQ- to -SQL DataContext,并以这种方式实现事务性行为。我想要做的是将DataContext实例存储在会话中,在不调用SubmitChanges()的情况下执行所有插入操作,然后只调用SubmitChanges()一次来提交事务。不幸的是,在LINQ- to -SQL中有一个错误,它阻止你在调用SubmitChanges()之前从DataContext中获取之前插入的数据(参见