DeleteAllOnSubmit 不删除任何内容

DeleteAllOnSubmit not deleting anything

我正在使用 DeleteAllOnSubmit 从 table 中删除行,如下所示:-

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 检查 table 显示相同之前和之后的行。没有抛出异常。

有谁知道为什么这个电话如此无效,我应该怎么做?

您必须提交事务范围:

ts.Complete();

它通过回滚完成了它的工作。