DeleteAllOnSubmit不删除任何内容

时间:2015-07-17 10:15:04

标签: sql-server vb.net linq-to-sql

我使用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检查表时会显示前后相同的行。没有例外。

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

1 个答案:

答案 0 :(得分:2)

您必须提交交易范围:

ts.Complete();

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