我使用DeleteAllOnSubmit
从表中删除行,如下所示: -
Try
Using ts As TransactionScope = New TransactionScope
Dim db As MyDataContext = New MyDataContext
db.my_tables.DeleteAllOnSubmit(From a In db.my_tables
Where a.col1 = given_col1 AndAlso
a.col2 = given_col2 AndAlso
a.col3 = given_col3)
db.SubmitChanges
End Using
Catch ex As Exception
' Log an exception if it occurs
End Try
但是当我这样做时,没有删除任何行。我已经通过在DeleteAllOnSubmit之前列出行来检查选择标准是否正确,因此: -
Dim rows_to_go As List(Of my_table) = (From a In db.my_tables
Where a.col1 = given_col1 AndAlso
a.col2 = given_col2 AndAlso
a.col3 = given_col3)).ToList
并检查调试中rows_to_go
的内容,这表明某些行是按条件选择的,但使用SQL Server Management Studio检查表时会显示前后相同的行。没有例外。
有谁知道为什么这个电话如此无效,我应该怎么做呢?
答案 0 :(得分:2)
您必须提交交易范围:
ts.Complete();
它通过回滚来完成它的工作。